2015-11-15 29 views

回答

0

启动模式包括两种类型的表事实表尺寸的。

明星设计的理想之处在于您可以将数据分为两部分。 静态部分在事实表中用尺寸动态部分(=交易)来描述。

每个事务都作为新记录存储在事实表中,并连接到定义事务上下文的周围维度。

链接中的示例包含两个事实表:SHIPMENTS和PRODUCT_CONDITIONS。 请注意链接中的事实表被称为UNITS_HISTORY_FACT和PRICE_AND_COST_HISTORY_FACT,但我觉得这不是一个最佳选择。

SHIPMENTS表通过定义的通道在某个时间向客户存储每次发运PRODUCT的一条记录。 以上所有信息均使用相应尺寸的相应按键进行定义。 事实表中还包含描述交易属性的MEASURES,这里是出货单位的数量。

事实表的结构将是因此

CUSTOMER_ID 
PRODUCT_ID 
TIME_ID 
CHANNEL_ID 
UNITS 

第二个事实表(底部)是更加有趣,因为在这里你分成两个部分的产品:

PRODUCT维定义ID ,名称和其他更多静态属性

PRODUCT_CONDITION这是事实表,设计时期望产品的价格和成本随时间而变化。 每次更改价格成本时,都会在事实表中插入一条新记录,并将其连接到PRODUCT(更改时间)和TIME(更改时间)。

事实表的结构会因此

PRODUCT_ID 
TIME_ID 
UNIT_PRICE 
UNIT_COST 

最后注意时间维度的设计。

连接事实表与维度表的最佳做法是使用无意义的ID(代理键),但对于TIME维度,您应该小心。对于大的(时间分区的)事实表是经常使用的自然键(DATE格式)能够部署分区功能。在网页中查看How I Defined a Time Dimension Using a Surrogate Key和其他资源的更多详细信息。