我有两张国家和地区表。区域是一个或多个国家的集合。有些国家没有地区。
我应该如何在关系数据库中表示这一点?我想到了以下两种可能性:
最佳做法是什么?
答案 0 :(得分:3)
一种方法是创建一个包含两列的第三个表,一个包含CountryID,另一个包含RegionID,其中这些列分别是Country和Region的唯一标识符。
此表中的行表示国家/地区与地区之间的关系。由于表中可以有多行,因此可以存储多对多关系。如果没有关系(某些国家不在任何地区),表格中没有任何行。
这是一个例子
表1 - 国家
ID名称
1西班牙
2法国
3德国
4挪威
5 Belguim
表2 - 区域
ID名称
1欧洲
2 BeneLux
3欧盟贸易区
4 ASIA
表3 - CountryRegion
国家区域
1 1
2 1
3 1
4 1
5 1
1 3
2 3
3 3
5 2
其中表达了以下内容 -
西班牙在欧洲(国家1,地区1)
法国在欧洲
德国在欧洲
挪威在欧洲
比利时在欧洲
西班牙在欧盟
法国在欧盟
德国在欧盟
Belguim在BeneLux中
亚洲没有任何国家
这可能不是地理上完整或正确但我希望它显示原则。