2017-02-21 99 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表)。您不需要單獨創建管理器維度,只需要員工指向橋表兩次。