我有一个星型模式,显示公司中的员工角色。最简单的是:
DimDate
DimPerson
DimPaygroup
DimRole
事实表如下: 是PersonID, 角色ID, PaygroupID, StartDate,EndDate
如果是当前角色,则Enddate设置为31-Dec-2199
问题是我需要跟踪Paygroup,因为这可能会在没有人员角色改变的情况下发生变化。
我最初的计划是通过在名为PayGroupEndDate的事实表中添加一个额外的列来将其视为迟到的事实。当paygroup更改并添加新行时,这将更新。我不确定这是最好的解决方案。
通过使其成为一个缓慢变化的维度,可以更好地解决这个问题吗?
StartDate& EndDate专门用于角色,即一个人开始并留下角色的数据。这就是事实表的内容。
一个人可以扮演同一个角色并在paygoups之间移动,这也需要跟踪,但我试图将其作为一个SCD。
更新:我正在考虑为PAYGROUP创建一个新维度,而不是将其作为人员维度的属性。这样,当它改变时,将输入一条新记录。这是解决问题的简单方法吗?