繁体   English   中英

具有多个属性的维度行

[英]Dimension row with multiple attributes

这不是我正在做的事情,但我觉得这是一个很好的例子:

假设我有一个连接到ProductSales Fact表的Product维表。 dimProduct中的每一行都包含单个产品(代码,名称,描述等)的所有相关数据,并且有大约一百万种产品。

我现在需要将产品类别存储到仓库中。 每个产品都有多个类别,平均为5。

我是否应该在产品维度中为产品适合的每个类别复制整行,或者我应该使用dimCategory维度和两者之间的dimProductCategory链接表雪花我当前的星型模式?

我担心如果我做前者那么我的Dimension表将变得超过5倍,如果我做后者那么模型将变得更加复杂。

那么,对于一个新人来说,你的问题是相当有见地的!

如果您的每个产品都可以分类为多个类别(并且每个产品类别包含n个产品),那么Product和产品Category之间的基数是多对多的。 当你拥有多对多基数时,直接Snow Flaking 不是解决方案。

但我认为这里雪花的意思是使用CategoryProduct之间的链接表。 在我看来,这是当前的方法。 但我宁愿将此表称为Factless事实表。

Snowflaking是一对多基数问题的解决方案 (例如,1个类别包含多个产品)。 要解析多对多基数,您需要Factless Fact表来存储两个category Product表中的键。

请记住,如果您加载到ProductSales事实表的事务数据已包含CategoryProduct详细信息,您可能还希望在ProductSales事实表中包含类别ID和产品ID。 如果您不需要维护产品和类别之间的任何固定关系,而是通过实际业务中发生的事件来驱动关系,则可以执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM