【发布时间】:2018-07-24 21:07:14
【问题描述】:
我需要存储有关国家、地区和城市的信息。我应该使用哪个架构:
表格:
- 国家(ID、代码、名称);
- 区域(id、ctry_id、代码、名称);
- 城市(id、rgn_id、代码、名称)。
| id | code | name | | 1 | US | USA |
| id | ctry_id | code | name | | 1 | 1 | TX | Texas |
| id | rgn_id | code | name | | 1 | 1 | DS | Dallas |
或
- 位置(id、pid、类型、名称);
| id | pid | type | name | | 1 | 0 | ctry | USA | | 2 | 1 | rgn | Texas | | 3 | 2 | cty | Dallas |
哪种方法更好?
【问题讨论】:
-
第一种方法可能是您在实践中想要的。不过,第二种方法确实有一个优势,它允许您为地址定义任何层次结构。
-
@TimBiegeleisen:非常感谢。
-
@TimBiegeleisen:现在我正在使用第一种方法,但我正在考虑使用第二种方法,这就是我问这个问题的原因。
-
如果地址架构是固定且规则的,例如每个地址总是在美国,那么我认为第一种方法没有任何问题。如果架构可以更多样化,那么第二种方法看起来更有吸引力。
-
@TimBiegeleisen:是的,还有更多国家,非常感谢! )))
标签: mysql