如何解决维度建模:多个事实表中的相同退化维度或使用一致维度
我有一个零售系统,想使用 ralph kimball 的 Dimensional Modeling 创建一个数据仓库。
我有一个简单的 order fact table
来测量 order quantity
和 order dollar amount
。从我在书中和互联网上读到的内容来看,order number
是一个位于事实表上的退化维度。
然后 order fact table
有一个 status
,最初我认为它是一个流,所以我想到了累积快照事实表。一切都很好,直到我意识到 status
实际上不是流,它是一个标签,因此订单可以将状态从“a”更改为“b”,然后再次更改为“a”。我的情况更糟,因为 order fact table
现在有 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
表一样多。对此有什么想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。