Architecture 如何连接处于1-N关系的事实和维度表

Architecture 如何连接处于1-N关系的事实和维度表,architecture,data-warehouse,olap,Architecture,Data Warehouse,Olap,我有一个带有一些度量和维度键的购买事实表。 然后,还有另一张表:折扣表。 Purchase FactTable与折扣表的关系为1-N(对于每次购买,我可能会购买几个折扣项目)。 折扣表有一些属性(描述、注释)和一些数值(例如:折扣单位$),我想汇总 如果我从这个折扣表中创建一个维度,我会得到一个错误的结果 总和计数中的采购计数数(膨胀,每行一次) 折扣商品) 如果我从这个折扣中创建一个单独的事实 表,如何查询这两个事实表(在它们 不共享任何维度,因此我无法使用一致/共享维度进行钻取) 如果我创

我有一个带有一些度量和维度键的购买事实表。 然后,还有另一张表:折扣表。 Purchase FactTable与折扣表的关系为1-N(对于每次购买,我可能会购买几个折扣项目)。 折扣表有一些属性(描述、注释)和一些数值(例如:折扣单位$),我想汇总

  • 如果我从这个折扣表中创建一个维度,我会得到一个错误的结果 总和计数中的采购计数数(膨胀,每行一次) 折扣商品)
  • 如果我从这个折扣中创建一个单独的事实 表,如何查询这两个事实表(在它们 不共享任何维度,因此我无法使用一致/共享维度进行钻取)
  • 如果我创建一个退化维度,我们回到第一个场景
将创建一个桥接表,其中包含:BridgedKey、折扣键、折扣美元、其他“度量”。。解决我的问题

p、 美国。 这有助于选择桥接表,但我不确定它是否适用于我的情况(因为我需要从折扣表中汇总一些数字属性)


谢谢,

根据我的经验,我倾向于使用两个事实表
purchase
pruchase\u detail
进行设计

PURCHASE每次购买都有一行属性

 purchase_id  -- unique ID 
 purchase_date  
 customer_id
 ...
采购详细信息每次采购有1:N行,并存储定价详细信息

 purchase_id -- corresponding purchase
 account_type -- dimension describing sales price and all discount types
 amount
 ....
金额有适当标志;销售价格为正,折扣为负

范例

 purchase_id    account_type    amount
 1              sales price     100
 1              discount1       -5
 1              discount2       -1
使用此设计,您可以安全地计算采购(在采购表上)、总价(在采购详情上)
并制作各种或详细的折扣报告

根据我的经验,我倾向于采用两个事实表的设计
purchase
pruchase\u detail

PURCHASE每次购买都有一行属性

 purchase_id  -- unique ID 
 purchase_date  
 customer_id
 ...
采购详细信息每次采购有1:N行,并存储定价详细信息

 purchase_id -- corresponding purchase
 account_type -- dimension describing sales price and all discount types
 amount
 ....
金额有适当标志;销售价格为正,折扣为负

范例

 purchase_id    account_type    amount
 1              sales price     100
 1              discount1       -5
 1              discount2       -1
使用此设计,您可以安全地计算采购(在采购表上)、总价(在采购详情上) 并制作各种或详细的折扣报告