Architecture 如何连接处于1-N关系的事实和维度表
我有一个带有一些度量和维度键的购买事实表。 然后,还有另一张表:折扣表。 Purchase FactTable与折扣表的关系为1-N(对于每次购买,我可能会购买几个折扣项目)。 折扣表有一些属性(描述、注释)和一些数值(例如:折扣单位$),我想汇总Architecture 如何连接处于1-N关系的事实和维度表,architecture,data-warehouse,olap,Architecture,Data Warehouse,Olap,我有一个带有一些度量和维度键的购买事实表。 然后,还有另一张表:折扣表。 Purchase FactTable与折扣表的关系为1-N(对于每次购买,我可能会购买几个折扣项目)。 折扣表有一些属性(描述、注释)和一些数值(例如:折扣单位$),我想汇总 如果我从这个折扣表中创建一个维度,我会得到一个错误的结果 总和计数中的采购计数数(膨胀,每行一次) 折扣商品) 如果我从这个折扣中创建一个单独的事实 表,如何查询这两个事实表(在它们 不共享任何维度,因此我无法使用一致/共享维度进行钻取) 如果我创
- 如果我从这个折扣表中创建一个维度,我会得到一个错误的结果 总和计数中的采购计数数(膨胀,每行一次) 折扣商品)李>
- 如果我从这个折扣中创建一个单独的事实 表,如何查询这两个事实表(在它们 不共享任何维度,因此我无法使用一致/共享维度进行钻取)李>
- 如果我创建一个退化维度,我们回到第一个场景
谢谢,根据我的经验,我倾向于使用两个事实表
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
使用此设计,您可以安全地计算采购(在采购表上)、总价(在采购详情上)
并制作各种或详细的折扣报告