【发布时间】:2014-04-26 10:38:28
【问题描述】:
给定一个包含北部和南部地区的父表,以及一个与该地区相关联的州的子表,假设加利福尼亚州既是北部地区的成员,也是南部地区的成员。代表这种关系的最佳方式是什么?
我最初的想法是使用第三张表来表示交叉引用。例如:
Table_Region
ID Value
1 North
2 South
Table_State
ID Value
1 California
Table_Xref
Region_ID State_ID
1 1
2 1
创建第三个表只是为了表示交叉引用似乎是一种浪费,但它允许状态表只包含每个状态的唯一值。如果我将区域 ID 添加到州表中,我将不得不重复加利福尼亚州表中的值,因为它属于两个区域。
【问题讨论】:
-
您提出的是处理多对多关系的常用方法。尽管在这种特殊情况下,我想知道“北/南”属性的用处。
-
我同意乔的观点,这是正常的方式。您还可以创建一个 Table Region Id 3 Both
标签: sql-server database-design