2010-01-06 72 views
0

民間,多對多維度模型

我有一個稱爲DIM_FILE的維度表,它保存我們從客戶那裏收到的文件的信息。每個文件都有詳細記錄,構成我的FACT表CUST_DETAIL。在主流程中,文件經歷了幾個階段,每個階段都爲其添加了一個狀態。總而言之,我有多對多的關係。圍繞星型模式尺寸建模的任何想法。客戶記錄只屬於一個文件,並且文件可以具有多個狀態。

FACT 
---- 
CustID 
FileID 
AmountDue 


DIM_FILE 
-------- 
FileID 
FileName 
DateReceived 

FILE_STATUS 
----------- 
FileID 
StatusDateTime 
StatusCode 
+1

你的問題到底是什麼? – 2010-01-06 20:56:35

回答

2

有一些事情你可以做一個三維模型/星型模式嫁給這樣的:

  1. 建設兩個星(可能的話,他們最終會在不同的數據集市)。一個有FACT作爲事實表,另一個明星有FILE_STATUS作爲事實(你可以把它看作一個事務粒度事實表)。爲了使這項工作,我可能denormalize並添加CustId FILE_STATUS太
  2. 由於你正在處理FILE_STATUS,你可以把事實變成一個積累快照事實表。在這個模型中,您將在FACT中有一組單獨的額外列來記錄屬於每個狀態轉換的所有信息。至少,您會在日期/時間維度中添加一列,以記錄何時達到特定狀態。在您的ETL中,您必須更新事實表以記錄文件如何在狀態中前進。這種設計只適用於狀態數量有限且相對較小的情況。此外,應該有或多或少清晰的狀態進展路徑(如客戶訂單:已接收 - >已揀配 - >已包裝 - >已發貨 - >已付款)
  3. 爲狀態創建一個所謂的多值維度:FACT會得到這個新維度的關鍵,而這個新維度實際上將代表適用於FACT表中的一行的狀態集合。
  4. 你可以有一個橋接表(雖然我不認爲適用於這個問題,不知道)

參考文獻:

累積快照:http://www.kimballgroup.com/2002/06/design-tip-37-modeling-a-pipeline-with-an-accumulating-snapshot/ 多值維度VS橋表:http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/multivalued-dimension-bridge-table/

+0

考慮更新鏈接或從提供的鏈接提供關鍵信息,因爲它們現在已經死亡。 – Fourth 2014-09-18 17:31:04

+0

@第四感謝,更新。 – 2014-09-18 19:31:23