Database design 如果我的表有100个字段,这是否表示数据库设计不好?

Database design 如果我的表有100个字段,这是否表示数据库设计不好?,database-design,Database Design,我有一张桌子:订单明细表。订单有很多细节,在我的例子中是100个字段。在数据库中,一个表中有100个字段是很常见的,还是应该将其拆分为更小的表,以及如何拆分?谢谢 订单明细表中的一些数据由销售经理使用,其他数据由产品线专家使用,而其他数据由采购人员使用 我应该把它放在一起还是分开,哪个NF将应用于这个级别?简单的答案是否定的。当然,可以根据需要设置任意多的字段,并且给定数据库中的字段数并不表示设计不佳。然而,可能表明设计不佳的是(正如Kshitij Mehta在评论中指出的)高度的数据复制(或较

我有一张桌子:订单明细表。订单有很多细节,在我的例子中是100个字段。在数据库中,一个表中有100个字段是很常见的,还是应该将其拆分为更小的表,以及如何拆分?谢谢

订单明细表中的一些数据由销售经理使用,其他数据由产品线专家使用,而其他数据由采购人员使用


我应该把它放在一起还是分开,哪个NF将应用于这个级别?

简单的答案是否定的。当然,可以根据需要设置任意多的字段,并且给定数据库中的字段数并不表示设计不佳。然而,可能表明设计不佳的是(正如Kshitij Mehta在评论中指出的)高度的数据复制(或较差)

规范化是在数据库中组织数据的过程。这包括创建表,并根据规则在这些表之间建立关系,这些规则旨在保护数据,并通过消除冗余和不一致的依赖关系使数据库更加灵活

Codd对1NF(第一范式)以外的标准化目标说明如下:

  • 将关系集合从不需要的插入、更新和删除依赖项中解放出来
  • 随着新数据类型的引入,减少了重新构造关系集合的需要,从而延长了应用程序的生命周期
  • 使关系模型向用户提供更多信息
  • 使关系集合与查询统计信息保持中立,随着时间的推移,这些统计信息可能会发生变化-E.F.Codd,“数据库关系模型的进一步规范化”
  • 数据库标准化为2NF是很常见的,在某些情况下更高


    有关更多信息,请参阅维基百科或。我希望这会有所帮助。

    简单的答案是否定的。当然,可以根据需要设置尽可能多的字段,并且给定数据库中的字段数并不表示设计不佳。然而,可能表明设计不佳的是(正如Kshitij Mehta在评论中指出的)高度的数据复制(或较差)

    规范化是在数据库中组织数据的过程。这包括创建表,并根据规则在这些表之间建立关系,这些规则旨在保护数据,并通过消除冗余和不一致的依赖关系使数据库更加灵活

    Codd对1NF(第一范式)以外的标准化目标说明如下:

  • 将关系集合从不需要的插入、更新和删除依赖项中解放出来
  • 随着新数据类型的引入,减少了重新构造关系集合的需要,从而延长了应用程序的生命周期
  • 使关系模型向用户提供更多信息
  • 使关系集合与查询统计信息保持中立,随着时间的推移,这些统计信息可能会发生变化-E.F.Codd,“数据库关系模型的进一步规范化”
  • 数据库标准化为2NF是很常见的,在某些情况下更高


    有关更多信息,请参阅维基百科或。我希望这有帮助。

    只要表中的数据被规范化,将其拆分为多个表就没有多大好处。

    只要表中的数据被规范化,将其拆分为多个表就没有多大好处。

    您需要知道两件事:如何规范化和何时规范化

    如果您已经知道如何进行规范化,并且表已尽可能地规范化,那么不要为了良好的设计而拆分它。如果您不知道如何正常化,请查看其他一些响应

    何时正常化的答案更为微妙。有专家一直在建议标准化。还有其他专家不这么认为。我的答案是正常化,除非你有一个更好的计划,在手的情况下


    对我来说,如果手头的案例是报表数据库、数据集市或数据仓库,我更喜欢星型模式或雪花模式,而不是规范化设计。即使在进行规范化时,我也很少担心BCNF之后的规范化表单

    你需要知道两件事:如何正常化和何时正常化

    如果您已经知道如何进行规范化,并且表已尽可能地规范化,那么不要为了良好的设计而拆分它。如果您不知道如何正常化,请查看其他一些响应

    何时正常化的答案更为微妙。有专家一直在建议标准化。还有其他专家不这么认为。我的答案是正常化,除非你有一个更好的计划,在手的情况下


    对我来说,如果手头的案例是报表数据库、数据集市或数据仓库,我更喜欢星型模式或雪花模式,而不是规范化设计。即使在进行规范化时,我也很少担心BCNF之后的规范化表单

    你有很多重复的数据吗?这是你的数据库设计不好的最大标志。有些设计在一个表上有300个字段,这可能是正确的(!?)设计。你有很多重复的数据吗?这是db设计不好的最大标志。有些设计在一个表上有300个字段,这可能是正确的(!?)设计。