1

我有一个员工维度,我使用 SCD 和代理键来跟踪随时间的变化。

员工业务系统密钥:EmployeeID

员工代理键:EmployeeSCDKey

我也希望随着时间的推移跟踪经理信息。经理和其他人一样是员工,因此,我正在考虑在我的 Employee 维度中有一个 ManagerSCDKey 列,如下所示:

例子:

例子

这是我面临的问题。箭头显示了从一个变换到下一个变换的边界。如果经理更改了工作(或某些其他类型 2 SCD 字段)并为他们创建了新的代理键,则直到下次转换维度时才能识别该更改。

我的意思是红色的行直到第二次转换才会出现,因此这次与 Joe 关联的任何事实行都将包含过时的经理信息。

我想归结为:

有没有办法使这种模式起作用?(带有钥匙的维度?)

还是有更好的实践方法来完成相同的任务?我宁愿不维护与员工维度极其相似的经理维度,但如果这是最佳实践,那就这样吧。

4

1 回答 1

1

这里有一些替代方案的很好的讨论,我相信你会找到符合你需要的东西:http: //www.informationweek.com/software/information-management/kimball-university-five-alternatives-for-better -员工维度建模/d/d-id/1082326?page_number=1

我可能会选择某种“报告给”桥接表,可能具有自然键而不是代理键,具体取决于您希望它的行为方式(并解决您的类型 2 SCD 表)。您不需要单独创建经理维度,只需让员工两次指向桥接表。

于 2017-02-22T13:50:28.907 回答