仓库 - 雪花
Posted
技术标签:
【中文标题】仓库 - 雪花【英文标题】:Warehouse - snowflaking 【发布时间】:2011-10-17 13:02:36 【问题描述】:Sales_fact: 产品 ID (FK) 价格
Dim_Product: 产品_ID 产品_Key 说明
我面临的问题是,如果我的产品可以属于多个类别,该怎么办。我应该在 Dim_Product 中为每个类别重复记录吗?
示例:
事实表: 产品 ID (FK):1 价格:10.5
Dim_Product: 产品编号:1 Product_Key: ABC 说明:笔记本电脑 类别 ID:1
Product_ID:1 Product_Key: ABC 说明:笔记本电脑 类别 ID:2
Dim_Category: 类别 ID (FK):1 说明:HP
Category_ID (FK):2 说明:东芝
【问题讨论】:
【参考方案1】:我认为您可能希望将类别信息移动到 dim_product 中,或者允许从事实表到类别表的链接,或者为多个类别中的每个类别设置不同的 product_id 键。正如您所展示的,没有办法区分惠普笔记本电脑和东芝笔记本电脑。事实上,当您的表被设计时,查询会在链接时返回。我建议为每个唯一的 Product_key、Description、Category_ID 创建一个不同的 product_id。
【讨论】:
【参考方案2】:对于这种情况,您需要的是雪花的对立面,它是产品和类别之间的桥梁。这个桥接表也将作为一个无事实的事实来显示哪些产品属于哪个类别。 Ralph Kimballs“数据仓库工具包”的第 15 章对此进行了演示
【讨论】:
以上是关于仓库 - 雪花的主要内容,如果未能解决你的问题,请参考以下文章