Jos*_*ana 5 database-design relational-theory
以采购系统为例。为以下内容使用一个表格是否有意义:报价、订单、发票和贷记凭证?
会有一些不同的细节。例如,每个列表将有其 5 个特殊字段,但另一个说 50 个字段将完全相同。在这种情况下将所有表连接到一个表中是否有意义。并且某些字段未用于某些类型。
我可以看到 Navision 系统在其数据库中执行了类似的操作。它使用一张表,但一旦发布项目,就会拆分为单独的表。我认为这可能是出于性能原因,因为发布的项目往往会变得非常大。& 拆分为单独的表将加快查询速度。但这只是我的想法。
所以我的主要困境是......在这种情况下推荐的方法是什么:1张桌子还是单独的桌子?各自的优缺点是什么?需要考虑哪些业务因素?
谢谢你的帮助!
基本上有三个选项(通过三个选项的组合可能会变得复杂):
以下是一些需要考虑的因素:
基于这些考虑,我个人会将表分开。尽管它们可能具有相似的属性,但它们是根本不同的实体。
然而,我会尝试做的是查看这些公共属性集,看看它们是否真的属于报价单/订单/发票/信用凭证,或者将它们规范化到他们自己的表中是否会更好。例如,如果您有客户名字、客户姓氏、客户街道 1 等,将其拆分为客户键(或客户和地址键,视情况而定)可以减少每个中的列总数四大实体,减少重复并获得正常化的其他好处。
您可能已经最大限度地标准化了所有内容,并且这些实体中的每一个实际上都合法地具有 50 个共同的属性。在那种情况下,我仍然会保留单独的表格,因为您正在谈论恰好彼此相关的根本不同的事物。
归档时间: |
|
查看次数: |
4069 次 |
最近记录: |