如何在具有行项目粒度的事实表上汇总标题级值?

8kb*_*8kb 7 data-warehouse business-intelligence facttable

根据我的阅读,基于订单标题/行项目结构的事实表的推荐粒度是在行项目级别。在此过程中,任何仅适用于订单标题的附加值都会为每个行项目重复:

为父子应用程序设计维度模型

维度建模基础

下面(来自第二个链接)是这种设计的一个例子:

在此处输入图片说明

在此示例中,适用于整个订单的运费对每个订单项重复。

但是,如果您将所有运输金额归结到特定客户下,您的实际价值就会翻倍。您如何避免这种价值翻倍?

  1. 对于此表,运输金额是否被视为不可添加的事实?
  2. 是否需要某种特殊处理?
  3. 有什么理由不简单地拥有两个(几乎相同的)事实表?一种用于订单,一种用于订单行项目?

小智 4

我会介绍一种神奇的运输产品,并仅将运输价值与此相比较(也保留了拥有多种运输产品的可能性 - 重型/隔夜/等)。不过,我可能仍然将 ShippingAmount 与 ProductAmount 列分开,这样您就可以轻松地仅添加产品销售额。