我是数据仓库的新手,但我认为我的问题相对容易回答。我建立了一个星型模式,其中包含一个尺寸表“ product”。该表具有列“ PropertyName”和列“ PropertyValue”。因此,维度看起来像这样:
surrogate_key | natural_key (productID) | PropertyName | PropertyValue | ... 1 5 Size 20 ... 2 5 Color red 3 6 Size 20 4 6 Material wood
等等。
在我的事实表中,我始终使用尺寸的替代键。由于PropertyName和PropertyValue列的原因,我的自然键不再是唯一的/无法识别,所以事实表中的行太多了。
现在我的问题是,该如何处理属性列?最好将每个属性放到单独的维度中,例如维度大小,维度颜色等?我有大约30种不同的属性。还是应该为事实表中的每个属性创建列?还是将所有属性一维化?
在此先感谢您的帮助。
您的尺寸表“产品”应如下所示:
surrogate_key | natural_key (productID) | Color | Material | Size | ... 1 5 red wood 20 ... 2 6 red ...
如果必须具有多个属性,请尝试将它们归入另一个维度。例如,如果您可以在另一种颜色或材料中使用相同的ID和相同的价格购买相同的产品,则颜色和材料可以是另一维的属性。您的事实表可以使用两个键来标识产品:product_id和colormaterial_id