1

假设我有以下情况:

具有一些非易变属性的维度产品(描述和直径 - 它们只能通过 SCD-1 更改进行更改以进行更正)和一个可能易变的属性(销售组,同一产品可能随时间而变化)。

因此,当一种产品的这些易变属性发生变化时,我需要以某种方式跟踪它们。

我有这两种方法:

对于两者:继续将 SCD-1 用于非易失性属性。

方法 #1:在 product_dim 中使用 SCD-2 仅用于易失属性。

在此处输入图像描述

方法二:让销售组成为一个全新的维度,每次销售都将跟踪 ETL 时刻的当前价值。这里不需要 SCD-2。

在此处输入图像描述

我是数据仓库的新手,我试图了解哪个更好以及为什么。我的目标之一是使用 OLAP 软件来阅读所有这些内容。

4

1 回答 1

1

这一切都取决于您模型的业务需求。我对您的问题不够了解,但根据经验,如果您想按销售组进行分析(即:销售组 X 销售的所有产品的总数量),那么您应该创建一个单独的维度。所以在这种情况下方法#2 是正确的。考虑一般概念并假设销售组是某种产品组,将其作为产品的属性是没有意义的。

如果您想了解有关维度建模的更多信息,如果您还没有完成,我建议您查看Ralph Kimball 的工作。他的书The Data Warehouse Toolkit是一个极好的资源,其中涵盖了您的问题和更多技术。当出现这样的问题时,这是一个很好的工具。大多数有经验的数据建模师都会时不时地查阅它的副本。

于 2016-09-26T12:49:18.727 回答