我目前正在尝试为我正在工作的新项目设计一个数据库。我的问题源于规范化和Denormalizing....what,我试图弄清楚的是,你应该总是尽可能地规范化吗?数据将是用户很少修改的信息,并且最常与数据视图报告/视图交互。
因此,我的第一次尝试是对数据进行规范化,但当我深入到项目中,并意识到他们很少会添加/更改数据时,我认为从一开始就对结构进行反规范化可能会更好。
wisdom.....there的任何一句话都有可能在未来与数据进行更多的交互,但它仍然不会像订单系统或客户关系管理系统那样。
永远感谢你的投入。
--S
发布于 2010-08-08 13:22:20
设计OLTP数据库的常用建议是normalise to 3NF。
然而,DataWarehouse或OLAP数据库的最佳实践是反规范化为Fact Table并支持维度表( star schema)。
因此,这取决于您的精确使用扫描。从你的描述中,听起来你有一些更接近OLAP的东西。
我会在一开始将所有的东西正常化,然后如果有性能问题,看看去正规化。
如果您的报告涉及大量聚合,并且您应该创建索引来覆盖您的查询工作负载,则SQL Server indexed views可能会对您有所帮助。
发布于 2010-08-08 13:23:36
规范化和恰当的设计将为您省去未来的问题。即使这个特定的项目看起来并不需要它,无论如何都要去做,以确保你已经养成了这个习惯,并进行实践,
我不得不重写的大多数应用程序都有问题,原因是数据库设计得很差。
因此,正如这里多次提到的那样,尽可能地规范化,除非它真的损害了性能,即使这样,也只有在有令人信服的理由去规范化的情况下。
发布于 2010-08-08 13:22:23
规范化的好处:
去正规化的好处
https://stackoverflow.com/questions/3433175
复制相似问题