事实表设计,包含多个事实表中的度量

时间:2014-09-26 09:38:33

标签: database-design data-warehouse

我正在研究星型模式,并试图找到数据库设计的最佳实践。

我有三个(此刻)维度表用于几个事实。大多数事实看似一样(意味着它们是一种不同类型的事实,但共享特征)。虽然共享度量不属于维度表(因为它们不是事实,而是在特定时刻产生逻辑测试/条件),但我想知道最佳实践是什么情况。

  1. 所有事实表都有“共享”字样。措施
  2. 会出现/可能出现某种雪花片事实结构(会带来查询性能问题)
  3. 期待您对此主题的见解和论证。

1 个答案:

答案 0 :(得分:0)

有点过于模糊,但这里有几个选项:

1)如果所有事实具有相同的粒度和度量,请考虑将它们全部保存在同一事实表中,同时保留事实类型维度;

2)通过虚拟立方体加入各种事实表。大多数OLAP工具应该允许这样的构造(例如,Mondrian做)

3)如果各种事实表具有相同的粒度但不同的度量,那么它们仍然可以组合,但是每种类型的事实都会贡献一组不同的事实表列(而不仅仅是行)

4)如果上述两种情况都不可能(例如,不同的粒度),您可能需要在较粗的颗粒水平(具有聚合)或更精细的颗粒水平(使用某种分配算法)重新组合它们,一起分析它们。

5)如果仍然无法做到这一点,您可能希望不将事实表本身组合在一起,而是在报告/仪表板级别组合查询,只合并聚合结果而不是原子数据库行。