【问题标题】:Over-Normalized Table in Adventure Work冒险工作中的过度规范化表
【发布时间】:2013-01-31 11:55:06
【问题描述】:

我刚开始使用数据库,想了解 Adventure-work-db 表设计概念的原因。为什么我们将 BusinessEntity 视为一个表,而我们没有将它放在 person 表中?这不是一种过度标准化的表吗?

【问题讨论】:

  • 看起来他们可以使用 PersonID 作为个人 PK 做得更好。可能他们只是想加强一对一的关系。这种设计不是由于标准化工作,这是肯定的。这是一个领域驱动的决策。

标签: sql sql-server sql-server-2008 adventureworks


【解决方案1】:

一个表格通常应该代表一个事物/对象/概念。如果您要在 Person 中包含 BusinessEntity 的内容,那么模型会说 Person is BusinessEntity,反之亦然,我猜这不是真的。尽管我接受 BusinessEntity 目前除了对 Person 的引用之外没有任何其他内容。

但是,目前的模型很容易扩展。您可能希望将来向 BusinessEntity 添加新列(例如公司编号、税务登记代码)。这样的属性不属于一个人,因此不会真正属于 Person 表。因此,如果您的应用程序有一个业务实体的概念,那么最好按照您的图表对其进行建模。

【讨论】:

    猜你喜欢
    • 2014-09-23
    • 2010-09-22
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 2018-02-13
    • 2011-05-09
    相关资源
    最近更新 更多