gpt4 book ai didi

database - 什么是更好的数据库设计 : more tables or more columns?

转载 作者:太空狗 更新时间:2023-10-30 01:37:30 30 4
gpt4 key购买 nike

一位前同事坚持认为,具有更多表且每个列更少的数据库优于具有更少表但每个列更多的数据库。例如,不是包含名称、地址、城市、州、邮政编码等列的客户表,而是名称表、地址表、城市表等。

他认为这种设计更高效、更灵活。也许它更灵活,但我没有资格评论它的效率。即使效率更高,我认为增加的复杂性也可能抵消这些 yield 。

那么,与拥有更多列的更少表格相比,拥有更少列的更多表格有什么显着的好处吗?

最佳答案

在设计数据库时,我遵循一些相当简单的经验法则,我认为它们可以用来帮助做出这样的决定....

  1. 支持规范化。非规范化是一种优化形式,具有所有必要的权衡,因此应该使用 YAGNI 来处理它。态度。
  2. 确保引用数据库的客户端代码与架构充分分离,这样重新设计就不需要对客户端进行重大重新设计。
  3. 当非规范化对性能或查询复杂性有明显好处时,不要害怕去规范化。
  4. 在数据量和使用场景允许的情况下,使用 View 或下游表来实现反规范化,而不是对架构的核心进行反规范化。

这些规则的通常结果是初始设计将优先于表而不是列,重点是消除冗余。随着项目的进展和反规范化点的确定,整体结构将朝着平衡的方向发展,即在有限冗余和列扩散方面做出妥协,以换取其他有值(value)的好处。

关于database - 什么是更好的数据库设计 : more tables or more columns?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59482/

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