如何在餐厅场景中设计星型模式,客户下订单,每个订单包含多种食品

问题描述

这里我有一个 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 的 arrtibutes

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

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

解决方法

假设:

一个商品有多个订单,一个订单包含多个商品。

您可以拥有如下事实记录: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

你不加入事实表。通过按公共维度单独汇总每组度量,然后加入这些维度上的汇总集来组合事实。

您的模型可能如下所示:

enter image description here

在事实中重新调整updated_date :

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...