I have a star schema that shows employee roles in a company. At its simplest it is:
DimDate
DimPerson
DimPaygroup
DimRole
Fact table looks like: PersonID, RoleID, PaygroupID, StartDate, EndDate
If it is the current role the Enddate is set to 31-Dec-2199
Problem is I need to track Paygroup, as this can change without a person's role changing.
My initial plan was to treat it as a late arriving fact by adding an extra column to the fact table called PayGroupEndDate. This would get updated when paygroup changes and a new row would get added. I'm not sure this is the best solution though.
Could this be dealt with better by making it a slowly changing dimension?
The StartDate & EndDate are specifically for the Role, i.e. the data a person starts and leaves a role. That is the grain of the fact table.
A person can be in the same role and move between paygoups and this needs to be tracked also, but I was trying to do this as an SCD.
UPDATE: I was thinking of just creating a new dimension for the PAYGROUP, rather than leaving it as an attribute of the person dimension. That way when it changes, a new record will be entered. Is that a simple solution to the problem?