0

我最近实施了 SCD 类型 2 - 用于 OLAP 报告的客户维度。我们以前在Type 1 上使用过,其中customerID 是构建维度的关键,但由于该维度会得到重复记录,例如C_001 有两条记录,我认为使用相同的CustomerID 作为关键构建维度是不切实际的。我应该将代理视为主键,并使用“CustomerID”作为属性吗?

这是 SCD 类型 2 维度的最佳实践吗?

客户维度快照图片。

4

1 回答 1

0

代理键当然应该用作主键,但这并不能解决这里的主要问题。

您的业​​务键(以前是您的 customerID)也必须是唯一的,以便在构建事实表时分配正确的代理键,否则如果您只使用 customerID,您将创建重复项。

查看您提供的数据示例,您的业务密钥必须由 customerID 和 Region 组成。

虽然,我必须指出你的模型看起来有点奇怪,因为客户应该总是有一个唯一的 id 分配给它,如果案例是客户可以在不同的地区设有办事处,那么更合适的模型将附加一个位置维度,它会告诉您与给定事实相关的确切地区(或城市或国家等)。

于 2019-11-26T23:47:09.543 回答