我正在为销售分析构建一个维度模型,该模型具有一个名为Sales的事实,并与Product维度相关联。
重点是,每天产品库存都会发生变化,这些信息对于他们分析特定产品未售出的原因非常重要(例如,在XX / XX日,产品123456没有销售,因为那里库存中没有产品的地方)。
我想知道对这种情况进行建模的最佳选择,如果可能的话,还可以简单解释它是如何工作的。
提前致谢!
答案 0 :(得分:1)
这是一个非常广泛的讨论问题,所以在这里'讨论一下。
维度表
-- Products -----
ProductId
Name
(etc.)
每个要跟踪的产品包含一行 ProductId应该是代理键
-- 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
快速变得复杂。同样,很大程度上取决于您可以获得哪些信息以及您的仓库会提出哪些问题。