gpt4 book ai didi

postgresql - 数据库设计父子表vs多表

转载 作者:行者123 更新时间:2023-11-29 12:06:24 30 4
gpt4 key购买 nike

我正在尝试为 country-state-city-head 创建父子关系。我考虑两种方法-1) 创建单个表-

  pk|  name             |       type       |       parent  1 |  US               |      country     |       null  2 |  UK               |      country     |       null  3 | California        |      state       |       1  4 | Los Angeles       |      city        |       3  5 | Kent              |      state       |       2  6 | Obama             |      president   |       1  7 | Cameroon          |      pm          |       2

该表的主键将引用另一个表,该表将记录州/城市/国家在一段时间内的人口增长情况。

2) 第二种方法是为国家、州、首脑和城市创建多个表,然后使用外键引用来建立关系。然后每个表(城市/州/国家)的主键将引用人口增长表

方法 1 是否比方法 2 有任何优势?查询速度更快吗?

最佳答案

方法 1 是一个 EAV 表,几乎总是最糟糕的选择,除非您绝对无法提前预测您需要哪些字段(例如定义您可能希望从各种医学测试中存储的所有各种内容)。对于不会发生变化的地理数据,我会像瘟疫一样避免选项 1。它更难查询,将成为阻塞争用的来源,通常只是一个坏主意。

请记住,关系数据库在以关系方式设计时效果最好,不要在定义数据库表时使用面向对象的思维方式。如果您真的、真的需要 EAV 功能,至少在针对这类事情优化的 noSQl 数据库中执行。

关于postgresql - 数据库设计父子表vs多表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10409725/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com