KDT#6 如何处理关联的维度
在我们进行维度建模时,有时两个维度之间会出现关联。例如:产品维度和市场维度。这时,我们通常的处理方式有两个,一个是建立两个独立的维度表,每个维度表外键关联到事实表,另一个是合并成一个超级维度表(Super Dimension)。
接下来,我们考虑什么时候该建立独立的维度表,什么时候该建立超级维度表。
以产品和市场来说,如果它们是一对一或者多对一的关系的话,建立超级维度是一个合理的选择。建立好的超级维度和两个维度的大小差不多,但是维度浏览会变得容易。
但通常的情况下,产品和市场是多对多的关系,而且它们之间的对应关系还会经常变化,有时还需要处理如促销中产品和市场的关系等复杂的情况,所以这时合并成超级维度表并不合适。这时,建立两个独立的维度表是一个很好的选择。
综合来说,如果两个维度之间的关系是固定的、不是多对多的、不随时间变化的关系,我们就可以考虑建立成一个超级维度表。其他的情况,或者我们也无法确定的时候,我们都可以把它们建立成两个独立的维度表。