【问题标题】:How to connect a fact and dimension table that are in 1-N relationship如何连接具有 1-N 关系的事实和维度表
【发布时间】:2015-11-06 15:52:21
【问题描述】:

我有一个带有一些度量和维度键的采购事实表。 然后,还有另一个表:折扣表。 Purchase FactTable 与 Discount Table 是 1-N 关系(对于每次购买,我可能会购买多个打折商品)。 折扣表有一些我想汇总的属性(描述、注释)和一些数值(例如:$ 折扣)。

  • 如果我从这个折扣表中创建一个维度,我会出错 总和计数中的购买计数数(膨胀,每行一行 打折商品)。
  • 如果我从这个折扣中创建一个单独的事实 表,我如何查询这两个事实表(目前他们 不共享任何维度,因此我不能使用一致/共享维度进行钻取)。
  • 如果我创建一个退化维度,我们就回到第一个场景。

桥接表是否可以解决我的问题?

附言 这个link 帮助选择了桥接表,但我不确定它是否适用于我的情况(因为我需要从折扣表中汇总一些数字属性)。

谢谢,

【问题讨论】:

    标签: architecture data-warehouse olap


    【解决方案1】:

    我的经验将支持具有两个事实表 purchasepruchase_detail 的设计。

    PURCHASE每次购买都有一行带有属性

     purchase_id  -- unique ID 
     purchase_date  
     customer_id
     ...
    

    PURCHASE_DETAIL 每次购买有 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
    

    使用这种设计,您可以安全地进行 COUNT 次购买(在 PURCHASE 表上),SUM 总价格(在 PURCHASE_DETAIL 上) 并制作所有种类或详细的折扣报告。

    【讨论】:

      猜你喜欢
      • 2019-10-27
      • 2018-10-03
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多