使用来自维基百科的雪花模式图像:
http://en.wikipedia.org/wiki/File:Snowflake-schema-example.png
像在 Dim_Product 中那样在 Fact_Sales 中使用“Brand_Id”外键是否有意义?销售/品牌之间存在多对一的关系,就像销售/产品或产品/品牌一样,那么有什么合乎逻辑的理由不这样做吗?您可能希望直接加入 Dim_Brand 表。
我可能没有看到明显的东西。
使用来自维基百科的雪花模式图像:
http://en.wikipedia.org/wiki/File:Snowflake-schema-example.png
像在 Dim_Product 中那样在 Fact_Sales 中使用“Brand_Id”外键是否有意义?销售/品牌之间存在多对一的关系,就像销售/产品或产品/品牌一样,那么有什么合乎逻辑的理由不这样做吗?您可能希望直接加入 Dim_Brand 表。
我可能没有看到明显的东西。
如果您在维度模型中工作(您的问题中的星形/雪花模式注释使您认为您是),那么从绩效的角度来看,将 BRAND_ID 添加到销售事实是有意义的,如果企业试图回答的问题是“在此时间范围内,品牌 X 在所有产品中的销售额是多少”。
如果产品维度是 1 类 SCD,并且产品更改品牌,它也可能有用。您可能希望将之前的销售保留为“旧”品牌。
请记住,当您构建星形/雪花报告模式时,您不是在进行实体关系建模。is-a 或 has-a 的问题与维度模型无关。
我认为这将是一种很好的缓存数据的方式......但老实说,你可能最好只依赖链接。
原因是您已经对该表的功能(商店销售)进行了定义。加上商店销售的这些产品是什么品牌,会混淆该表的“主题”或“主题”,记录商店的销售额。
现在,如果您通过某种方式拥有可以以不同品牌销售的产品(如果我知道一个包装如何具有分裂的个性......)那么是的,这在一定程度上是有道理的,但更合理的解决方案是然后给每个产品它自己的SKU代码。