如何为大型数据仓库中的发票创建数据模型?

时间:2013-10-24 19:03:13

标签: data-modeling data-warehouse star-schema

我正在为大型数据仓库中的客户发票创建数据模型。

以下显示典型发票上的字段:

enter image description here


以下是我到目前为止为发票建模的数据模型:

enter image description here

传统观点认为,大型数据仓库应该使用星型模式,这意味着一个事实表,但似乎要为发票建模我需要两个事实表,如上所示。使用两个事实表是否正确?

1 个答案:

答案 0 :(得分:3)

我建议你尽可能避免多个谷物事实表。

由于Invoice Fact包含Total ShippingTotal Tax,将其归结为Invoice Detail Fact,我可以想到两个基本选项:

  1. 在“发票明细”中创建“税”和“运费”列,并在您的商品中进行分配。这个Kimball提示正好表明:http://www.kimballgroup.com/2001/07/01/design-tip-25-designing-dimensional-models-for-parent-child-applications/

  2. 对我来说效果很好的另一种方法是在产品维度中创建两个新成员。一个用于税收,一个用于运费。然后将这两个行项添加到事实中,就像具有适当值的普通产品一样。

  3. 当您按发票ID进行分析时,您将获得包含税和税的总额。货物。当您按个别产品进行分析时,您不会产生误导性的运费或税收数字。