我正在读Ralph Kimball关于数据仓库和维度建模的书。我正在阅读一个案例研究,它是关于订单系统的维度建模,其中的需求是捕获从订单到履行再到发货的订单生命周期。
所以,我在想,也许他们会建议在一个事务维度中使用多行事务类型FK。然而,这本书建议创建“角色扮演”维度-创建多个日期维度表(一个用于订单日期,一个用于履行,一个用于发货)。然后,它们中的每一个都将有一个外键进入事实表,因此事实表将有三列来关联这一点。
这不是一种限制吗?每事务行不是更好的选择吗?
发布于 2011-04-22 09:08:30
设计通常涉及权衡,如果没有关于整个系统的大量细节,很难知道什么设计是最好的。
但我对此的理解是:书中的表有三个单独的列,这可能会加快查询速度。数据仓库通常以牺牲输入的简单性和多功能性为代价,被反规范化以提高查询性能。
对我来说,这似乎是一个很好的答案:对于存储日常事务数据的数据捕获表来说,您的每事务行听起来更好,但对于分析来说就不是那么好了。
https://stackoverflow.com/questions/5751321
复制相似问题