0

我正在爲銷售分析構建一個維度模型,該維度具有稱爲銷售的事實並與產品維度鏈接。銷售事實與產品和庫存維度的維度建模

要點在於,產品庫存的每一天都會發生變化,而且這些信息對於他們分析特定產品未售出的原因很重要(例如,在第XX/XX天,產品123456未售出,因爲那裏庫存沒有產品)。

我想知道建模這種情況的最佳選擇,如果可能的話,簡要說明它的工作原理。

在此先感謝!

回答

1

這是一個相當廣泛的討論問題,所以這裏有一些討論。

維度表

-- Products ----- 
ProductId 
Name 
(etc.) 

包含每個產品一行被跟蹤 產品編號應該是一個代理鍵

-- Time -------- 
TimeId 
ReportingPeriod (Q1, week 17, whatever as desired) 
(etc.) 

包含一列,每天進行跟蹤。 一旦一天的活動的結果是已知的,它可以被添加到倉庫

注意TIMEID並不一定是一個代理鍵

事實表

-- Inventory ------------------------- 
ProductId 
TimeId 

一旦一天的活動結果已知,可將其添加到倉庫中 每行產品一行(每天),列出截至當天結束時的庫存情況

但是它變得複雜:只需要什麼數據,哪些數據可用?假設數據爲一天,可追蹤和記錄的可能事實包括:

StartingInventory -- What you had at the start of the day 
UnitsReceived -- Units received for storage today 
UnitsSold -- Units sold (that cannot be sold again) but not yet shipped 
UnitsShipped -- Units shipped (sold or otherwise) 
EndingInventory -- Units in stock at end of day 

它變得很複雜。再次,很大程度上取決於您有哪些可用的信息以及您的倉庫會問什麼問題。

+0

感謝您的解釋!在我們的案例中,我們的事實表將是銷售額(銷售產品總量,銷售總額 - 每個產品,客戶,商店等)。根據我的理解,他們希望跟蹤一個問題,例如「這個產品上週每天銷售量約爲40個,本週它的銷售量下降了70%,是否因爲庫存中沒有更多?」。也許跟蹤這些信息的解決方案是通過一個歷史性的表格,但我不確定它是如何工作的。 –

+0

另一件事情是,事實表中會有其他指標,如中等票價,平均出售產品數量,最高支付價格,最低支付價格......在這種情況下,作爲一些指標最好的做法是什麼在這個事實中是沒有意義的(例如,每張產品的中票:如果產品詳細說明了這一事實,這些信息將與「銷售的產品數量」相同,對吧?) –

+1

不太確定什麼「中票」意味着什麼。如果某個產品不適用於哪個事實,請製作一個單獨的事實表(可能是表格DaySummary,Columsn TimeId,TotalSales,MediumTicket等?) –