gpt4 book ai didi

data-warehouse - 如何将数据存储在数据仓库中一个订单中包含多个产品的事实表中

转载 作者:行者123 更新时间:2023-12-05 06:42:53 27 4
gpt4 key购买 nike

我正在尝试为我的一个项目(销售订单)设计数据仓库的维度建模。我是这个概念的新手。

到目前为止,我可以理解产品、客户和日期可以存储在维度表中,而订单信息将存储在事实表中。

Date_dimension 表结构将是

date_dim_id, date, week_number, month_number

Product_dimension 表结构将是

product_dim_id, product_name, desc, sku

Order_fact 表结构将是

order_id, product_dim_id(fk), date_dim_id(fk), order_quantity, order_total_price, etc

如果一个订单有 2 个或更多数量的产品,是否会在 order_fact 表中重复输入相同的 order_id, date_dim_id

请帮忙解决这个问题。我在这里很困惑。我知道在关系数据库中,order 表 每个订单都有一个条目,产品和订单之间的关系将在另一个表中维护,该表将 order_id 和 product_id 作为外键。

提前致谢。

最佳答案

这是一个经典案例,您应该(可能)有两个事实表FactOrderHeader 和 FactOrderDetail。

FactOrderHeader 将有每个订单的记录,存储有关订单值(value)和任何订单级别折扣的信息;尽管在某些情况下它们可以表示为 OrderDetail 记录。

FactOrderDetail 会对每一个订单行都有一条记录,存储关于产品的信息,产品成本,产品销售价格,商品数量,商品折扣。等

您可能还需要一个 DimOrderHeader,如果您想要存储非事实信息,例如,订单的接收日期、交付日期和付款日期。

关于data-warehouse - 如何将数据存储在数据仓库中一个订单中包含多个产品的事实表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35694914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com