2017-02-21 111 views
1

我有一个Employee维度,我使用SCD和Surrogate键来跟踪随着时间的变化。带有代理键本身的维度(数据仓库)

员工的业务系统的关键:雇员

员工代理键:EmployeeSCDKey

我想有随时间跟踪管理信息也是如此。管理者是员工和其他人一样,因此,我想在我的员工层面有像这样一个ManagerSCDKey柱:

例子:

Example

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

由此我的意思是红色的行不会出现,直到第二次转换,所以与此时与Joe相关的任何事实行都会过时管理器信息。

我猜它归结为:

有没有一种方法,使这种模式的工作原理? (尺寸有自己的钥匙?)

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

+0

最佳做法是为经理提供另一个维度。在同一维度维护2个SCDKeys会很麻烦。请参阅以下链接中的另一种方法:http://blogs.adatis.co.uk/simonwhiteley/post/Slowly-Changing-Parent-Child-Dimensions-Part-1-The-Theory – MayowaO

回答

1

下面是一些替代商量好了,我想你一定会找到的东西,符合你需要的东西:http://www.informationweek.com/software/information-management/kimball-university-five-alternatives-for-better-employee-dimension-modeling/d/d-id/1082326?page_number=1

我会选择某种形式的“报告”表桥,也许有自然键而不是代理键,具体取决于您希望如何表现(并解决您的第2类SCD表)。您不需要单独创建管理器维度,只需要员工指向桥表两次。