任何具有多个值的属性都可以是维度吗?

时间:2016-05-05 11:32:23

标签: data-warehouse

这可能是一个奇怪的问题,但是如果它有多个值,我们可以从任何属性中创建一个维度表吗?例如"种族",种族总是应该是顾客的属性(例如),或者它在任何情况或场景中都可以是它自己的维度表。

提前感谢您的任何帮助

1 个答案:

答案 0 :(得分:2)

如果属性具有多个值,则将所有值放在一列中并不是一个好主意。如果您需要根据该值搜索某些内容,您会发现在以后的阶段很难。一个好的方法是创建另一个子维度表,主维度代理键作为外键,并按行排列多个值。这样您将拥有一个结果集,该结果集将在Main维度中包含1条记录,并在子维度表中包含该主记录的许多记录。我认为这是处理多种价值场景的更好方法。

我必须处理类似的情况,其中一个客户有许多电话号码,所有电话号码都存储在源数据库的一列中。我创建了客户数据而没有包含电话号码,并创建了一个单独的Dimension表,其中包括customer表键作为外键,并将所有多个值包含在Dimension表中的行中,这对我在其他任务中的帮助很大稍后说ETL过程可以将这些值分成行。

我希望你明白这一点。