0

我有一个零售销售系统,想使用 ralph kimball 的 Dimensional Modeling 创建一个数据仓库。

我有一个简单的order fact table那个措施order quantityorder dollar amount。从我在书中和互联网上读到的内容来看,这是事实表上的order number一个退化维度。

然后order fact table有一个status,最初我认为它是一个流程,所以我想到了累积的快照事实表。一切都很好,直到我意识到这status实际上不是一个流程,它是一个标签,因此订单可以将状态从“a”更改为“b”,然后再次更改为“a”。我的情况更糟,因为order fact tableis 现在有 3 种状态需要跟踪其更改。所以我认为累积的快照事实表在这里不起作用。

我的尝试是创建 4 个事实表,order order status a order status b order status c. 每个新订单都会在表中创建一行,order并在每个订单中创建一行作为初始状态order status。然后通过在 中创建一个新行来完成对状态的每次更改order status

由于order status表与表相关order,因此我需要这 3 个order status表来引用order表。怎么做?使用相同的order number退化维度)就足够了吗?我认为一致性维度也可以解决这个问题,但是这些维度行会像order表格一样增长。对此有什么想法吗?

4

0 回答 0