我的数据库模型需要一个表City,我有两种可能的设计:
City:
id_city PK
city
country
City:
city
country
PRIMARY KEY(city, country)
我想知道什么更合适。在案例1中,我可以使用不同的主键插入一个城市两次......对吗?案例二似乎更正确......不是吗?你推荐我什么?
答案 0 :(得分:3)
您可以尝试使用邮政编码。想一想:美国有多少斯普林菲尔德?那只是一个国家。有一次,在西德有3个城市名叫哈恩。城市和邮政编码之间的关系是一个(城市)到多个(邮政编码)。
答案 1 :(得分:2)
在特定国家/地区中可能有多个同名城市。
例如,在美国,佛罗里达州和俄亥俄州都有名为迈阿密的城市,俄勒冈州和缅因州都有名为波特兰的城市。
答案 2 :(得分:1)
在一个国家/地区,您可以拥有多个同名城市。看here 我建议使用city_id int作为主键并将zipcode添加到列中,这样您就可以通过它进行验证。
答案 3 :(得分:1)
我建议如下:
City:
id_city PK
city
country
UNIQUE Constraint(city, country)
为什么?
只需2美分。