2011-06-06 27 views
0

我處於類似如下情況:同一事實表列;有多種理由的記錄

想想我們需要將客戶銷售存儲在事實表(在使用維度建模構建的數據倉庫下)。我有銷售,與銷售有關的折扣,銷售退貨和取消存儲。

您認爲將特定產品(以糧食爲天)的一天的銷售額存儲爲一個正值,而將退貨和折扣存儲爲不足時最好?

此外,如果在產品(例如品牌)以外的級別對客戶強制執行折扣,您認爲可以堅持使用特定分配給品牌的關鍵(產品是穀物)對於特定記錄,產品列被賦予N/A?

在此先感謝。

回答

1

如果您的銷售被認爲是一件好事(我假設他們是),那麼將銷售記錄爲正數是非常合理的。因此,任何降低銷售額(即折扣和退貨)的交易都應記錄爲負數。這將使您的銷售報告非常自然。

如果您有不同的維度可能會記錄一個記錄,您應該填充有意義的維度。所以是的,如果這是您的商業交易中發生的事情,那麼將折扣歸因於品牌而不是產品。這樣,您的報告將能夠查看所有折扣,特定產品的折扣和整個品牌的折扣。如果您的事實表顯示折扣(產品或品牌)的最直接「原因」,那麼您的報告將比通過與產品的關係將品牌與品牌關聯起來更有用。

+0

嗨@Joel,非常感謝。其實我在相同的尺寸表中有產品的品牌等。我計劃的是在同一張表中給品牌一個單獨的密鑰,並在事實表中使用它(因爲我們使用智能密鑰來保存與時間相關的記錄,例如每月記錄)。你認爲將事實表中的某些外鍵列(例如productkey)作爲N/A是否可以(因爲沒有相應的產品而不是品牌)? – 2011-06-06 12:12:47

+0

如果事實是獨立於產品的折扣(即在品牌層面),那麼我認爲可以有N/A的產品。您需要有其他方式將折扣與特定銷售掛鉤,以便專注於產品問題。您的原始事實數據表可以輕鬆回答折扣的來源,但您還需要回答「我們打折了多少產品X(出於任何原因)的問題?」這就是爲什麼使用PK/FK關係將折扣與銷售掛鉤很重要的原因。無論折扣如何,原始銷售總是會有產品。 – 2011-06-06 12:25:57

+0

謝謝@Joel,理解。我可能需要做一些設計更改。 – 2011-06-06 12:34:01

相關問題