Rion作品:冒险作品解释(adventureworks data model)

我一直在看微软的 Adventure Works 2012 数据库。如果有任何信息解释为什么表按原样创建,我会非常感兴趣。某种模式概述我猜

例如:

为什么他们选择创建一个BusinessEntity表作为 Person,Employee 等的基类。

大多数数据都是规范化的,所以为什么他们选择将CountryRegionCode字段放入StateProvince表中,而不是将 ID 放入单独的表中。

无论如何,我非常有兴趣了解更多关于数据库设计的决定。

12

我不知道 AdventureWorks 的任何官方设计文档,但我曾经是一名培训师,并广泛使用 AdventureWorks 数据库进行演示和实验室,所以我非常熟悉它。

BusinessEntity 表是 SuperType / SubType 设计的典型案例,它减少了数据冗余,因为客户也可以成为供应商,员工也可以成为客户,以及其他组合。此外,这意味着您不会在单独的表中重复存储与所有实体相关的详细信息,从而最大限度地减少了代码更改时的工作量。

CountryRegionCode 我不是积极的,但我会怀疑三个原因之一:

没有足够的不同组合来保证以报告性能为代价的额外表(这可以通过一些简单的 COUNT(*)GROUP BY 语句进行验证)

他们希望它在同一个表中,以便将来他们可以灵活地使用 hierarchyID 对层次结构进行建模(这是最不可能的选项)

这是一个标准化错误!(我的钱在这个选项上!)

10

这张照片对我有帮助,尽管它在技术上是 2008 年的。

1

这里是一个链接,在后台填写一点:

https://technet.microsoft.com/en-us/library/ms124825(v=sql.100).aspx

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(378)
Blindfolded:游戏难题:与对手蒙住双眼的硬币翻转
上一篇
Centos查看mysql状态:无法在CENTOS7上安装MySQL
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(64条)