4

我正在阅读 Ralph Kimball 关于数据仓库和维度建模的书。我正在阅读其中一个案例研究,它是关于订单系统的维度建模,其中要求捕获从订单到履行再到发货的订单生命周期。

所以,我在想,也许他们会建议在一个交易维度上设置多行交易类型为 FK 的行。然而,本书建议改为创建“角色扮演”维度——创建多个日期维度表(一个用于订单日期,一个用于履行,一个用于发货)。然后,它们中的每一个都将在事实表中具有一个外键,因此事实表将具有三列来关联它。

这样的限制不是吗?每笔交易不是一个更好的选择吗?

4

1 回答 1

2

设计通常涉及权衡,如果没有整个系统的大量细节,很难知道哪种设计是最好的。

但我对此的看法:书中的表格包含三个单独的列,可能会加快查询速度。数据仓库通常像这样进行非规范化以提高查询性能,但代价是输入的简单性和多功能性。

对我来说似乎是一个很好的答案:对于存储日常事务数据的数据捕获表来说,您的每笔交易行听起来更好,但对于分析来说却没有那么好。

于 2011-04-22T01:08:30.387 回答