我正在为大型数据仓库中的客户发票创建数据模型。如何在大型数据仓库中为发票创建数据模型?
下面显示了一个典型的发票中的字段:
以下是数据模型我摸索出这么远的发票型号:
传统的观点认为,大型数据仓库应该使用星型模式,这意味着一个事实表,但似乎是模拟一个inv oice我需要两个事实表,如上所示。使用两个事实表是否正确?
我正在为大型数据仓库中的客户发票创建数据模型。如何在大型数据仓库中为发票创建数据模型?
下面显示了一个典型的发票中的字段:
以下是数据模型我摸索出这么远的发票型号:
传统的观点认为,大型数据仓库应该使用星型模式,这意味着一个事实表,但似乎是模拟一个inv oice我需要两个事实表,如上所示。使用两个事实表是否正确?
我建议你尽可能避免多个粮食事实表。
由于发票事实包含Total Shipping
和Total Tax
,熬下来到发票明细事实,有我能想到的两种基本的选择:
在你的发票明细实际上创建税和运费列分发您的项目。这Kimball提示完全建议:http://www.kimballgroup.com/2001/07/01/design-tip-25-designing-dimensional-models-for-parent-child-applications/。
对我来说运行良好的替代方法是在您的产品维度中创建两个新成员。一个是税和一个是运费。然后将这两行项目添加到事实中,就像具有适当值的正常产品一样。
当您通过发票ID进行分析时,您会得到总计,包括税金&运费。当您通过个别产品进行分析时,您不会收到误导性的货运或税收数字。
+1,很好的链接。在链接中,我发现“我们无法按产品展开我们的业务!如果我们限制某个特定产品”这个词有点不清楚 - 为什么与Sum()的连接不起作用?谢谢。 – NoChance
它通常有助于定义您首先要分析的过程或事件。它是什么?发票需要多长时间才能获得报酬? –
另外,您不需要发票事实。只需使用发票明细事实并将发票号码放在那里。 –