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

How to design star schema in a restaurant scenario where customer place food orders and each order contains multiple food items

这里我有一个 FACT table, FACT_Orders 并且有字段 customer_id, order_id, total_cost, created_date, updated_date.

此外,我还有一个事实 table、FACT_Order_List 来保持项目的顺序,其中包含字段 order_list_id、order_id, item_id

我还有维度 tables DIM_ItemDIM_Customer 来保持Item 和 Customer 的属性

根据 FACT tables,我需要计算售出的最受欢迎和最不受欢迎的商品

这个好的设计有两个 FACT table 并加入 FACT table 进行计算吗?

假设:

An item has many orders and an order contains many items.

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

您没有加入事实表。通过按公共维度分别汇总每组度量然后在这些维度上加入汇总集来合并事实。

您的模型可以如下所示:

Regading the updated_date in the fact :

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