用于捕获不同日期时间表上的销售权重的维度模型

时间:2016-04-07 02:21:31

标签: sql-server design-patterns data-warehouse dimensional-modeling star-schema

我们需要制定一项策略,以不同的时间表显示按日期加权的销售收入数据。

我们目前有一个FactSales表,每个订单包含一行粒度,以及销售额的度量。我们有单独的DimDate和DimTime维度,以及DimBusinessUnit维度,组织中的每个实体都有一行。

在DimDate,我们有美国主要假期的旗帜,因此我们知道可能会减少销售收入。该标志将全球适用。

问的是,不同的业务部门可能会有较慢的收入天数。例如,星期一在一个业务部门可能会很慢,而另一个业务部门的周五可能会很慢。对于分析,需要使用标记或加权来捕获这些不同的计划。

最终,这可能会反映为计算出的预计销售额。

如何才能最好地添加此权重?它是属于Date维度,业务单位维度,还是属于Fact表中的退化维度,还是其他一些东西?

2 个答案:

答案 0 :(得分:0)

DimDate可能不是保存此信息的好地方,因为每个业务单位(BU)可能有不同的时间表,因此很可能每个BU和每个组合的日期都必须有一个标记。一个缓慢的一天。因此,例如,如果BU1和BU2在星期一有一个缓慢的日子,那么DimDate中的每个星期一都必须有一种方式表明BU1和BU2的速度很慢。

Dimension BU可能是一个更好的地方,因为时间表是特定于每个单位的。所以你可以选择通过添加7天作为属性来扩展你的昏暗,并将它们标记为慢或不使用例如false或true标志。您还可以使用位掩码的一个属性,即0100000,其中值的位置对应于日,即M T W T F S S且0不慢并且1慢,因此在该示例中T是慢日。

如果您选择相关的SCD过程,这也可以让您追踪历史记录。

另一个选项可能是单独的Dimension,即DimSchedule和Factless Fact Table。

http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/factless-fact-table/

我希望这会有所帮助。

答案 1 :(得分:0)

您的情况似乎与Kimball描述的多个国家日历问题相同:

http://www.kimballgroup.com/1998/12/think-globally-act-locally/

Kimball在最左边的表格中描述假期,你也可以添加一个“慢日”标志。