-1

在这里,我有一个 FACT 表FACT_Orders,其中包含字段customer_id、order_id、total_cost、created_date、updated_date

此外,我还有一个 FACT 表FACT_Order_List以保持项目的顺序,其中包含字段 order_list_id、order_id、item_id

我还有维度表DIM_ItemDIM_Customer来保留 Item 和 Customer 的属性

从 FACT 表中,我需要计算最畅销的商品和最不受欢迎的商品

这个好的设计是否有两个 FACT 表并连接 FACT 表进行计算?

4

1 回答 1

3

假如说 :

一个项目有很多订单,一个订单包含很多项目。

您可以有如下事实记录:CustomerId=5 订购了 2 件商品

OrderId OrderListId ItemId CustomerId ItemPrice   TotalCost   CreatedDate
1       1           12     5          100         350         17-01-2021
1       1           15     5          250         350         17-01-2021

你不加入事实表。通过按公共维度单独汇总每组度量值,然后在这些维度上连接汇总集,从而组合事实。

您的模型可能如下所示:

在此处输入图像描述

在事实中重新考虑 updated_date :

事实表不应更新。事实衡量值几乎永远不应该更新有几个非常好的理由。...事实表处理:在 SQL Server 数据仓库数据库服务器上执行表更新可能是一项非常昂贵的操作!事实表可以而且应该非常大。

于 2021-01-17T21:07:14.450 回答