gpt4 book ai didi

sql-server - 缓慢变化的维度与事实

转载 作者:行者123 更新时间:2023-12-04 16:20:48 24 4
gpt4 key购买 nike

我是 DW 的菜鸟。我有一个客户表,其中包含很少更改的基本列,如 Name、JoinedOn 等。还有另一组列可以随时间变化,如“Status”、“CustomerType”、“PublishStatus”、“BusinessStatus”、“CurrentOwner”等。在没有历史的那一刻。在 DW 中,我想跟踪以下列何时更改“Status”、“CustomerType”、“PublishStatus”、“BusinessStatus”、“CurrentOwner”。我觉得如果我创建另一个表来跟踪这些会更好,该表将包含以下列:

"CustomerId", "Status","CustomerType","PublishStatus","BusinessStatus","CurrentOwner", "ExpiredOn","IsCurrent"

这是正确的方法吗?如果是,那么这张新表是一个事实还是一个缓慢变化的维度?我想运行查询,例如 CustomerType 何时从 A 更改为 B?什么时候出版的?当 BusinessStatus 改变时,所有者是谁?

最佳答案

哪种客户建模方式更好实际上取决于您将如何使用相应的维度。例如,如果您想在销售时按“CustomerType”汇总与“Customer”维度关联的一些销售,则只有将历史详细信息保留为缓慢变化维度的一部分才能做到这一点。

您可能可以直接在代表缓慢变化的“客户”维度的表格上运行大量客户报告。但是,如果您的客户数量达到数百万,您最好为客户状态更改创建一个(或多个)单独的事实表。

因此,总结一下:从一个缓慢变化的维度开始。如果客户数量增长太多,客户状态变化的报告变得太慢,为他们添加一个事实表,不用担心重复数据。

关于sql-server - 缓慢变化的维度与事实,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18134730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com