sql – 冒险作品解释
|
我一直在关注微软的Adventure Works 2012数据库.如果有任何信息可以解释为什么表格是按原样创建的,我会非常感兴趣.我想是某种架构概述. 例如: 为什么他们选择将BusinessEntity表创建为Person,Employee等的基类. 大多数数据都已标准化,因此他们选择将CountryRegionCode字段放入StateProvince表而不是将ID放入单独的表中. 无论如何,我非常有兴趣了解有关数据库设计决策的更多信息.任何人都知道进入这种事情的资源? 解决方法我不知道AdventureWorks的任何官方设计文档,但我曾经是一名培训师,并广泛使用AdventureWorks数据库进行演示和实验,因此我对它非常熟悉.BusinessEntity表是SuperType / SubType设计的经典案例,它可以减少数据冗余,因为客户也可以成为供应商,员工可以成为客户,以及其他所有组合.此外,这意味着您不会在单独的表中重复存储与所有实体相关的详细信息,从而最大限度地减少代码更改时的工作量. CountryRegionCode我不是肯定的,但我怀疑有以下三个原因之一: >没有足够的不同组合来保证额外的表以牺牲报告性能为代价(这可以通过一些简单的COUNT(*)GROUP BY语句来验证)>他们希望它在同一个表中,以便将来他们可以灵活地使用hierarchyID建模层次结构(这是最不喜欢的选项)>这是一个归一化错误! (我的钱是这个选项!) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- SQL Server uniqueidentifier转换成varchar数据类型的sql语
- sql-server – “nodes()”方法是否保留文档的顺序?
- sql-server – TFS 2013和SQL Server 2014版本冲突
- 实体框架 – 实体框架5 – 在实体从数据库加载之后,寻找中心
- sql-server-2008 – SQL Server无法预测的选择结果(dbms错误
- sql – 具有变量的SELECT TOP N
- sql-server – 如何在sqlserver中使用ROUNDDOWN
- Sql Server中的视图介绍
- 相当于SQLServer函数SCOPE_IDENTITY()在mySQL中?
- sql – 使用营业时间和假期计算到期日期
