Database 如何处理SCD类型2维度和重复维度记录?

Database 如何处理SCD类型2维度和重复维度记录?,database,ssas,olap,dimensional-modeling,jedox,Database,Ssas,Olap,Dimensional Modeling,Jedox,我最近为OLAP报告实现了SCD类型2-客户维度。我们以前在类型1上使用它,其中customerID是构建维度的关键,但由于此维度将获得重复记录,例如C_001有两个记录,因此我认为使用与键相同的customerID构建维度是不切实际的。我是否应该考虑代理作为主键,并使用“客户ID”作为属性?< /P> 这是SCD类型2尺寸的最佳实践吗 代理键当然应该用作主键,但这并不能解决这里的主要问题。 您的业务密钥(以前是您的customerID)也必须是唯一的,以便在构建事实表时分配正确的代理密钥,否则

我最近为OLAP报告实现了SCD类型2-客户维度。我们以前在类型1上使用它,其中customerID是构建维度的关键,但由于此维度将获得重复记录,例如C_001有两个记录,因此我认为使用与键相同的customerID构建维度是不切实际的。我是否应该考虑代理作为主键,并使用“客户ID”作为属性?< /P> 这是SCD类型2尺寸的最佳实践吗


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

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

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


尽管如此,我必须指出,您的模型看起来有点奇怪,因为客户应该始终为其分配一个唯一的id,如果客户可以在不同的地区拥有办事处,则更合适的模型将在事实上附加一个位置维度,该维度将告诉您确切的地区(或城市、国家等)给定的事实与相关。

是的,您是对的,代理应该是自动递增的key@vldmrrdjcc-谢谢!