我需要知道:
答案 0 :(得分:2)
这篇文章只是我对此事的看法。我可能在某些或更多部分错了。
我会深入浅出我认为你正在寻找的东西;归一化和非规范化数据:
为什么要规范化:
为什么反规范化:
如果您正准备设置数据库,请立即考虑数据的用途。并非所有数据都需要标准化或非规范化;你可以有一个混合动力车。同样,这是适用的。
数据的目的与获取数据的方式一样重要,至少在建模方面如此。如果您正在使用高度事务性的数据库但需要半小时(甚至更短的间隔)报告,您还必须考虑数据源冗余(这次我的意思是还要备份或复制数据库以保证数据安全) - 那么你将决定你的表是否需要混合,标准化或非规范化模型。例如,如果您的客户要求将数据发送给他们而不是作为报告而是作为结构化数据,您将能够处理他们对标准化数据的需求,但这可能不一定意味着您必须将其标准化--ETL可能会发挥作用,但这是在仔细审查和测试转换或查询速度之后。当您只是从CMS服务器加载数据时,只需要记录报告时,您可以对数据进行非规范化以实现可访问性。如果您决定在加载过程中聚合数据,那么查询静态数据的速度也将可见。还有一个问题是你是否正在处理缓慢变化的维度,你的数据结构受到“分组”需求的影响。
对不起,我可能已经絮絮叨叨了...... 我还想再次强调一下这篇文章是我认为的。我不会将这些内容呈现为纯粹的,不变的事实......这些只是碰巧是我能够学到的一些东西。许多人可能/将会不同意我在这里写的内容,但最终,我只是在决定如何建模数据时分享自己的经验。
答案 1 :(得分:0)
1