在我的存儲數據模型,我得到了以下關係:事實表 - 選擇不同?
root_tbl - 1:N - entry_tbl - N:1 - action_tbl
有一些更多的表,但是這包括基礎知識。 好吧,基本上一個來自根表的ID在入口表中有幾個數據集。
示例數據:
root_tbl:
ID_root ; Country ; FK_User ; FK_Product
1 ; UK ; 23 ; 31
2 ; NL ; 42 ; 01
entry_tbl:
ID_entry ; FK_root ; FK_Action ; Duration
1 ; 1 ; 42 ; 200ms
2 ; 1 ; 10 ; 94ms
3 ; 1 ; 9 ; 300ms
4 ; 2 ; 10 ; 322ms
5 ; 2 ; 30 ; 100ms
到目前爲止好......這個數據模型這是很容易回答的事情怎麼樣多條記錄有「英國」爲國行動「10」等。 現在我想將這些數據放入事實表中,但是我的問題是這三個表格的關係。例如,我會使用entry_tbl的記錄作爲事實,而不是每次統計國家/地區,用戶或產品時必須對ID進行選擇。
事實表看起來或多或少像這樣(只是想象中的字符串作爲外鍵):
fact_tbl:
ID ; FK_Action ; Duration ; Country ; User ; Product
1 ; 42 ; 200ms ; UK ; 23 ; 31
1 ; 10 ; 94ms ; UK ; 23 ; 31
1 ; 9 ; 300ms ; UK ; 23 ; 31
2 ; 10 ; 322ms ; NL ; 42 ; 01
2 ; 30 ; 100ms ; NL ; 42 ; 01
這意味着我將有大量的冗餘數據。
是否有解決這些解決什麼辦法?事實表將包含約300-500米的行。
我希望你有我的觀點。如果有什麼不明確隨意問
問候 托馬斯
我指定我的問題。我希望這給一個更好地瞭解! – user2428207
好吧,基本上你說的是非規範化的事實表是常見的權利? – user2428207
我不會這樣描述它 - 事實表是一系列與相關分類(尺寸)相關的指標(事實)。你有沒有什麼看起來像一個「墮落的維度」,如果有它沒有獨立的維度表,但在星型模式計數指標幾乎總是會需要不同的,除非你計數事實本身的數量。對於你的模型,你不得不將它定義爲每個id的單行,因此一列需要保存每個可能行爲的持續時間。這更像是一種數據智能方法 - 同樣有效但不可擴展。 –