数据库设计 - 规范化或非规范化

时间:2013-02-03 01:02:37

标签: database-design

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

是否对数据进行规范化/非规范化的问题非常特定于您的数据和客户的需求。

我会考虑一些事情:

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

  2. 我会考虑所涉实体的大小。如果你有10家公司,但每家公司有10,000家供应商,那么将公司+供应商归结为公司报告也许是一个坏主意。当您需要的只是几个公司字段时,为什么要获取大量数据?因此,如果任何实体有相当多的记录,我会考虑规范速度。

  3. 哪个更容易更新?也许这不是问题,但是如果你没有编写视图或sproc来进行非规范化,那么使用写入/更新比使用其他方法更容易支持。

  4. 根据我的经验,如果表格设计得很好并且没有过度标准化(当有10个表格真的很好的时候会有30个表格),那么我更愿意报告标准化数据。