数据库依赖关系 - 数据库设计

时间:2017-05-05 12:12:44

标签: mysql database-design

我正在设计一个具有以下属性依赖关系的数据库: 方法1:A< -B< -C< -D 方法2:A< -B,{A,B}< C,{A,B,C}< -D;

  • 使用第一种方法,属性D取决于属性C,C取决于B,B取决于A。
  • 使用第二种方法,属性D可以直接从A.
  • 获得

我需要你帮助解决哪种方法更好。感谢

修改

方法1的样本表

Country_info -------------,州信息,city_info,village_info

id | country_id |名称

表格对象

country_state

id | state_id | country_id

state_division

id | division_id | STATE_ID

village_division

id | village_id | division_id

现在,我有一个村庄的身份证,我想知道它所属国家的名称。在抵达该国之前,我将不得不寻找该部门。

使用第二种方法,村表将包含division_id,state_id和country_id。

谢谢!

2 个答案:

答案 0 :(得分:1)

如果村庄是"主要"经常使用的对象(并且它经常使用它与其他表的关系)然后通过使用第二种方法,你将减少代码行数并提高性能(例如按国家过滤村庄)。 / p>

答案 1 :(得分:1)

KISS。

表1:企业/个人/等人拥有地址和城市。

表2:城市还包括Viliage,State,Province,Country_code,Postal_code等等。

规范化每一层都是过度的。

如果您有六张桌子,请想象获得地址所有部分所需的JOINs数量!