Sql-Server

讓事實表多次與同一個維度表相關是好還是壞的做法?

  • April 17, 2015

我是 DW/BI 的新手,這似乎是一個非常基本的問題,但我似乎找不到一個好的答案。

我有一個事實表,它有多個與之關聯的日期,所以我想我會有多個日期鍵返回到同一個維度表,例如SubmittedDateKey, ClosedDateKey。顯然 SQL Server 可以做到這一點——我對此的保留是,當我以這種方式設計概念驗證架構時,客戶端工具(即 Tableau、Excel)似乎對如何映射關係感到困惑。(我還發現 這個論壇文章說 Oracle 的 Analytic Workspace Manager 明確禁止這樣做,這當然對我的微軟世界沒有任何暗示,但暗示這是一個普遍的禁忌。)

DW/BI 中是否有關於此的最佳實踐?SubmittedDateDimension我應該有多個相同的維度表,例如,而不是讓一個維度表連接到這些鍵中的每一個ClosedDateDimension

謝謝!

我會使用相同的維度表。特別是對於日期維度

這也是角色扮演維度

我不會讓客戶端工具(或 Oracle 論壇文章!)決定我的 SQL Server DW 設計。

通常,下游工具將以某種中間形式引用您的數據,例如 SSAS 多維數據集、QlikView QVD 文件或簡單的 CSV。但是,如果您的下游工具直接訪問數據庫,您可以簡單地創建一系列視圖,每個角色扮演維度一個。每個都可以定義為SELECT * FROM Dates。讓 Tableau 和 Excel 引用這些而不是單個Dates表。

這假設您沒有使用外鍵來指導分析工具。如果是這樣,我建議你放棄它們,因為倉庫的成本通常不值得。如果不能,您別無選擇,只能創建多個Dates表。

引用自:https://dba.stackexchange.com/questions/84385