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