冒险工作中过度规范化的表格

时间:2013-01-31 11:55:06

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

我刚刚开始使用数据库,并希望了解冒险 - 工作 - 数据库表设计概念的原因。为什么我们将BusinessEntity视为一个表而我们没有将它放在人员表中?是不是有过度规范化的表?

enter image description here

1 个答案:

答案 0 :(得分:5)

表通常应代表一件事/对象/概念。如果你要在Person中包含BusinessEntity的内容,那么模型就是说Person 一个BusinessEntity,反之亦然,我猜这不是真的。虽然我接受BusinessEntity目前没有任何东西,只有对Person的引用。

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