我是数据仓库的新手,我希望有一个关于构建星型模式的简单问题:
如果我有一个事实表,其中的事实记录自然与单个维度具有一对多关系,那么如何建模星型模式来支持这一点?例如:
计量单位为 DollarAmount)
促销事件是否有效
出售)
情况是我希望将单个销售点条目与多个不同的促销相关联。这些促销不能是它们自己的维度,因为有很多很多促销。
我该怎么做呢?
最佳答案
对于真正拥有“多值”维度的情况,Kimball 推荐的解决方案通常是桥接表。
您的“促销”维度只是每个促销及其属性(开始日期、结束日期、优惠券代码、POS 促销代码、广告名称等)的记录。从促销到产品的关系在这里没有建模,因为它会反射(reflect)在事实表中。
促销/折扣维度看起来像(每个独特的计划促销 1 行)
Promotion Dim ID
Promo Code
Coupon Code
Promo Start DTTM
Promo End DTTM
... etc ...
您的销售情况如下所示:
Tran Date
Tran Line #
Customer Dim ID
Product Dim ID
Promotion Group Dim ID
Net Sale Price
Average Cost
Discount Amount
您的“促销组”桥接表将是一组组合:
Promotion Group Dim ID
Promotion Dim ID
如果销售有 3 个促销,您只需创建与每个促销相关的组 ID,然后将组 ID 放在事实表中。这与医疗报告系统处理多项诊断的方式非常相似。
请注意,通过使用 Bridge 表,您可以轻松地重复计算销售额,因此我建议使用此方法的报告由了解该模型的人员开发。
关于data-warehouse - 星型模式 [事实 1 :n dimension]. ..如何?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2785158/