gpt4 book ai didi

mysql - 如何评价数据库系统中一张表的好坏?

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

如何评价数据库系统中一张表的好坏?我们需要从哪些方面来分析呢?我可以建立一个模型来进行此类评估吗?如果是的话怎么办?

最佳答案

非详尽列表。对于所有这些问题,是一个好的答案,是不好的答案。

  1. 该表格是否具有明确的业务功能?它与应用程序的目的的契合程度如何?
  2. 该表的名称是否正确?表的列名称是否正确?业务用户能理解他们的意思吗?
  3. 表有主键吗?
  4. 表是否对所有业务(候选)键都有唯一约束?
  5. 所有外键都已定义吗?
  6. 所有具有约束值的列是否都有指向引用数据表的外键或检查约束(或 MySQL 的 enum)?
  7. 所有列都具有正确(最强)的数据类型吗?
  8. 表格是否正确标准化? (在 OLTP 环境中,这意味着至少 Boyce-Codd Normal Form ,而数据仓库中的情况则有所不同。)
  9. 该表是否不含任何包含“智能 key ”的列、CSV 字符串、JSON、XML、其含义取决于另一列(或另一表)中保存的元数据的不同数据项,或任何其他看似奇怪的结构这在当时是个好主意,但会在多年后导致可怕的代码和数据损坏?
  10. 所有列都是标量,使用公认的 Oracle 内置数据类型(即没有嵌套表或用户定义类型)吗?
  11. 物理数据模型图是否包含表格?
  12. 该表是否可以从逻辑数据模型图中的实体派生?
  13. 您有表及其依赖对象的 DDL 脚本吗?这些脚本在源代码管理中吗?
  14. 该表是否符合您拥有的任何建模和编码标准(如果有)?
  15. 表的物理实现是否正确(例如,所有必要的索引、索引组织(如果适用)、分区(如果适用))?
  16. 这张 table 能守住吗?您是否愿意向另一位经验丰富的数据建模者、数据库开发人员或业务用户解释它?
<小时/>

正如您所知,这是一个固执己见的列表(这就是为什么有些人投票结束您的问题)。有些观点相当不精确。这可能与您希望的模型相去甚远。

人们可能会对其中一些措施提出异议。例如,关于 JSON 等非原子数据结构的观点。当然,有时这种结构是合适的。我曾经开发过一个系统,如果我们将数据存储在 XMLtype 列中而不是将其分解到关系表中,那么该系统会简单得多。但这些都是孤立的案例。阅读本网站上的一些有关智能 key 、标记 CSV 字符串或针对实体-属性-值反模型编写查询的问题,以了解这些事情会造成多大的痛苦。 First Normal Form应该是一个给定的条件,而藐视它的开发人员不值得拥有数据库。

其他点是领头羊。如果您的组织没有维护最新的物理数据模型,那么很可能您的所有表(如果不是全部的话)都是坏的(不是不可避免的,只是有可能)。令人惊讶的是,有多少地方似乎没有将其 DDL 脚本置于源代码控制之下。他们如何管理测试和生产的部署?我认为祈祷很重要。

关于mysql - 如何评价数据库系统中一张表的好坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50264281/

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