给定一个由北方和南方组成的地区的父表,以及与该地区相关的州的子表,假设加利福尼亚州既是北部地区和南部地区的成员。什么是表达这种关系的最佳方式?
我最初的想法是表示交叉引用的第3个表。例如:
Table_Region
ID Value
1 North
2 South
Table_State
ID Value
1 California
Table_Xref
Region_ID State_ID
1 1
2 1
创建第3个表只是为了表示交叉引用似乎是浪费,但它允许状态表只包含每个状态的唯一值。如果我将区域ID添加到状态表,我将不得不重复加利福尼亚状态表中的值,因为它属于两个区域。
答案 0 :(得分:0)
正如评论中所说,这是设计多对多关系的正常方式。
如果您只有2个(或4个)区域,则可以在Region
中避免将Table_Xref
表格和商店区域作为enumerated type,而无需为区域设置单独的表格。或者只是将其存储为您的应用/查询占区域代码的int。