我需要存储有关国家,地区和城市的信息。我应该使用哪种架构:
表格
| 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 | type | name | | 1 | 0 | ctry | USA | | 2 | 1 | rgn | Texas | | 3 | 2 | cty | Dallas |
哪种方法更好?
答案 0 :(得分:1)
所以这取决于你真正的目标。
我猜测选项2在速度方面可能更具性能,但是以表格为代价,结果很多条目令人困惑。我建议可能将类型字段限制为已知类型的列表,并且只在需要时使用此方法进行更改。还要考虑一下,对于需要维护数据的人知之甚少。
第一个选项可能不会那么快,但会更加结构化,并且表格会被恰当地命名。这可能是您不熟悉数据的同事会感谢您的方式。
我会给选项1一个,如果它符合您的性能需求,那么请选择那个。如果它太慢你试试第二个。
就个人而言,我更喜欢第一个。有时候性能上的轻微打击值得阅读。其他时候没有。
祝你好运。
答案 1 :(得分:0)
我会说架构1是关系型的,这就是mysql所期望的,我认为它会表现得更好。但是如果你需要使用像couchdb这样的noSqls,那么模式二就是它的工作方式,它对查询有用,但不适用于生成报告。