2 zfybs zfybs 于 2015.05.27 12:15 提问

数据库设计:数据表的对象的属性

问题比较简单,
在某个地区有A1、B、C、D、E等区域District,每个区域中又分几个小区域Region(如东西南北),在程序设计中,每个Region中都有两个属性(一个是工作完成的日期,一个是此Region所属的District),然后此Region中就是它每一天所对应的工作数据, 另一方面,每个District对象中也有一些属性值,这此“属性”下都只有一个值。

图片说明

我想问一下,这样的结构应该怎样来设计数据库?
District和Region中那几个属性一共就几个数据,应该怎么来单独地将其保存呢,难道用一个专门的表格来放那几个值?

我以前是在Excel中做的,数据表格的形式如下:
图片说明

图片说明

2个回答

gamefinity
gamefinity   Rxr 2015.05.27 12:47
 表1:Region
Id
Name
Area
DimX
DimY
 表2:District
Id
RegionId ==>Region.Id
Name

 表3:BusinessData
Id
DistrictId ==>District.Id
Date
BusinessScore
zfybs
zfybs   2015.06.03 09:19

我有两个问题:

第一:Region是属于大区域District之中的,难道不是每一个Region中有一个District字段吗,为什么是每一个District表中有一个Region字段?

第二:在表3 BusinessData中,DistrictId只有几个值,而每一个DistrictId中都有一个Date与BusinessScore对应的数据表,按您的表3的意思,可能很多个Date-BusinessScore数据行都对应同一个DistrictId,如下图。我想问一下,我觉得这种方式有太多的重复的数据了,而这种方式与 为每一个DistrictId创建一个表的方式相比,其优点在哪里啊?(我是真想弄明白,不是质问您。)

图片说明

最后,还有一个小疑问: — — 如果我想在SQL中定义枚举类型,用来限制某列数据的输入,应该怎么定义啊。我听说可以通过外键实现,但是外键只能关联到一个表的主键,那么如果我有很多个枚举类型的那,岂不是要为每一个枚举类型创建一个表了吗,请问一下有没有什么好方法啊?

Csdn user default icon
上传中...
上传图片
插入图片