SQL数据库结构问题

时间:2011-09-22 22:38:14

标签: mysql normalization

如何构建一个拥有CityStateCountry的数据库,而城市有时会有州,有时则不会?您是否只需将State_ID(默认NULL)和Country_ID放在City中,或者有更好的方法来接近它吗?

3 个答案:

答案 0 :(得分:3)

你的方法似乎很明显。如果没有可执行的层次结构,那么您就没有多少选择。

当现实世界不符合我们的架构时,我们别无选择,只能使我们的架构符合现实世界。

答案 1 :(得分:0)

如果你的DBA是一个非常严格规范化的坚持者,那么另一种选择就是在State表中有一个特殊的“无状态”记录。每个Country(至少每个都有“无国籍”城市)都需要其中一个。

答案 2 :(得分:0)

接受所提供的答案。但只是要注意,此处未提及的另一种方法是City_States多对多表。对于处于两个州的​​一些城市来说,这将是一种特别有用的方法。