首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计数据库

设计数据库
EN

Stack Overflow用户
提问于 2010-08-08 13:16:43
回答 5查看 160关注 0票数 6

我目前正在尝试为我正在工作的新项目设计一个数据库。我的问题源于规范化和Denormalizing....what,我试图弄清楚的是,你应该总是尽可能地规范化吗?数据将是用户很少修改的信息,并且最常与数据视图报告/视图交互。

因此,我的第一次尝试是对数据进行规范化,但当我深入到项目中,并意识到他们很少会添加/更改数据时,我认为从一开始就对结构进行反规范化可能会更好。

wisdom.....there的任何一句话都有可能在未来与数据进行更多的交互,但它仍然不会像订单系统或客户关系管理系统那样。

永远感谢你的投入。

--S

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-08 13:22:20

设计OLTP数据库的常用建议是normalise to 3NF

然而,DataWarehouse或OLAP数据库的最佳实践是反规范化为Fact Table并支持维度表( star schema)。

因此,这取决于您的精确使用扫描。从你的描述中,听起来你有一些更接近OLAP的东西。

我会在一开始将所有的东西正常化,然后如果有性能问题,看看去正规化。

如果您的报告涉及大量聚合,并且您应该创建索引来覆盖您的查询工作负载,则SQL Server indexed views可能会对您有所帮助。

  • SQL Server 2008 Indexing Best Practices
  • Scaling Up Your Data Warehouse with SQL Server 2008
票数 4
EN

Stack Overflow用户

发布于 2010-08-08 13:23:36

规范化和恰当的设计将为您省去未来的问题。即使这个特定的项目看起来并不需要它,无论如何都要去做,以确保你已经养成了这个习惯,并进行实践,

我不得不重写的大多数应用程序都有问题,原因是数据库设计得很差。

因此,正如这里多次提到的那样,尽可能地规范化,除非它真的损害了性能,即使这样,也只有在有令人信服的理由去规范化的情况下。

票数 3
EN

Stack Overflow用户

发布于 2010-08-08 13:22:23

规范化的好处:

  1. 节省磁盘空间
  2. 冗余数据更少意味着更有可能具有一致的data
  3. 在必要时更容易实施对方案和/或数据的更改

去正规化的好处

  1. 更简单的SQL查询(不需要大量的连接)
  2. 连接是昂贵的(缓慢的),并且使用规范化的数据库,您确实应该在所有连接字段上建立索引(并不是说索引是大量的工作)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3433175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档