【问题标题】:Database design - normalize or denormalize数据库设计 - 规范化或非规范化
【发布时间】:2013-01-18 01:41:18
【问题描述】:

我的 ERP 数据库中有一个名为 Company 的表。我们正在为我们的 ERP 数据库创建一个报告数据库,并对表格进行非规范化以加快查询速度。因此,公司表既有客户记录,也有供应商记录。我一直在考虑将这张表分成两张表 Customer 和 Vendor,但想知道你们是否对优缺点有任何想法。

感谢您的帮助。

【问题讨论】:

  • 您正在为您的 ERP 数据库创建数据库?你能编辑你的问题并稍微扩展一下吗?

标签: database-design


【解决方案1】:

是否规范化/非规范化数据的问题取决于您的数据和客户的需求。

我会考虑的一些事情:

  1. 对于报告,哪个模型更容易编写报告?一次性获取所有数据更容易吗?然后去规范化。您是否发现自己在使用非规范化模型的报告逻辑中跳跃?然后归一化。

  2. 我会考虑所涉及实体的规模。如果您有 10 家公司,但每家公司都有 10,000 家供应商,那么将公司+供应商非规范化以获取有关公司的报告可能不是一个好主意。当您只需要几个公司字段时,为什么要获取大量数据?因此,如果任何实体有很多记录,我会考虑对速度进行规范化。

  3. 哪个更容易更新?也许这不是问题,但如果您不编写视图或存储过程来进行非规范化,那么一种方法会比另一种更容易支持写入/更新。

根据我的经验,如果表格设计得很好并且没有过度标准化(有 30 个表格,而实际上像 10 个就可以了),那么我更愿意报告标准化数据。

【讨论】:

    猜你喜欢
    • 2013-07-26
    • 2013-08-21
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 2011-05-29
    • 2016-07-23
    • 2011-07-25
    相关资源
    最近更新 更多