我有一些麻煩,決定什麼應該在一個特定的尺寸,我應該在事實表走了星型模式我開發的。尺寸設計:不知道事實與尺寸爲某些類型的數據
例如起見,讓我們說,該項目跟蹤的房屋的物業管理公司。諸如各種日期,租房者,合同等的維度都相當簡單。對於房屋,無論數據在哪裏居住,我們都想跟蹤當前所有者,當前承租人,當前租賃合同以及諸如鄰居,地址,當前租賃價格,當前市場價值等等。請注意,所有者,承租人和合同本身就是維度(鄰居和地址也可能是維度,但我並不關心那些人)。
大量的數據的保持在約房屋將在過濾查詢中使用,或用於立方體的行和列標題。其中一些僅作爲輔助信息需要,一個房子的基礎上看,但不是總的。
給出的數據,以及我需要用它做的,我有(至少)三個選項:
- DimHouse:房子表是一個維度,用了很多的屬性,可能看起來更好一個事實表,但因爲它們被用於瀏覽和過濾,所以它們需要在這裏。像當前承租人這樣的屬性需要雪花/支腿。
- FactHouse:將房屋信息的累積快照與其他事實表相關聯,也許使用修剪後的DimHouse作爲橋樑。這對我來說似乎很奇怪,但它把真相表中的事實看作是事實。
- 將目前的所有者,當前租戶等在相關事實數據表,然後讓那些事實是最新的業主/租戶/等。改變(也很奇怪,但會使我們保持在星型模式的土地上)。
所以我一直走下去的尺寸路線。它給了我一些心臟消耗,但它達到了目標。我只想知道是否有更好的方法來組織數據。如果它們有意義並且是最佳做法(對於「最佳」值),我不介意冗餘(如具有事實表和具有類似數據的維度表)或雪花。
冗餘不是什麼讓我胃灼熱。什麼讓我感到沮喪是因爲我無法(作爲數據倉庫領域的n00b)設計一組事實和維度表來實現追蹤和衡量房屋相關數據的目標。你認爲你可以更多地談論這一點,也就是說,在你的中段更具體一些? – siride
@siride - 不知道爲什麼你會發現你目前的星型模式不足,很難提出具體的建議。將維度分組爲「更高級別」的維度絕對沒有什麼特別的錯誤,例如,房子到社區,雖然很多人非規範化所有這些使自動化立方體/數據透視工具更容易處理。你能舉一個你當前的明星不支持的查詢的例子嗎? –
這是一個設計問題。問題在於將數據放在何處,而不是如何解決斷開/低效的查詢。這聽起來像你正在倡導雪花的房子維度。我只是想確保這是我可以用前期設計做的最好的。 – siride