Tim*_*eys 6 sql t-sql database-design data-warehouse dimensional-modeling
这不完全是我在做什么,但我觉得这是一个很好的例子:
假设我有一个 Product 维度表,它连接到我的 ProductSales Fact 表。dimProduct 中的每一行都包含单个产品的所有相关数据(代码、名称、描述等),并且大约有 100 万种产品。
我现在需要将产品类别存储到仓库中。每个产品有多个类别,平均为 5 个。
我是否应该为产品适合的每个类别复制 Product Dimension 中的整行,还是应该使用 dimCategory 维度和两者之间的 dimProductCategory 链接表将我当前的星型模式雪花化?
恐怕如果我做前者,那么我的 Dimension 表会变得更大 5 倍以上,如果我做后者,那么模型会变得更加复杂。
嗯,对于一个新人来说,你的问题很有见地!
如果您的每个产品都可以分为多个类别(并且每个产品类别包含n个产品),那么Product和 Product之间的基数Category是多对多的。当你有很多一对多的基数,直接雪剥落是没有解决方案。
但我认为这里的雪花是指在Category和之间使用链接表Product。在我看来,这是当前的方法。但我更愿意称这张表为Factless 事实表。
雪花是一对多基数问题的解决方案(例如,1 个类别包含多个产品)。要解决多对多基数,您将需要Factless Fact表来存储两个category Product表中的键。
请记住,如果您加载到ProductSales事实表的交易数据已经包含Category和Product详细信息,您最好在ProductSales事实表中同时包含类别 ID 和产品 ID 。当您不需要维护产品和类别之间的任何固定关系,而是该关系由实际业务中发生的事件驱动时,您可以这样做。
| 归档时间: |
|
| 查看次数: |
1758 次 |
| 最近记录: |