DW设计(采购订单和发票)

时间:2016-12-28 09:54:58

标签: sql-server data-warehouse

我必须构建一个DW来存储PO和发票数据:

  • 发票有标题和项目列表
  • PO有一个标题和一个项目列表。
  • 发票可以与零个或多个PO相关
  • PO可以与一张或多张发票相关。

如何在星型模式中设计此方法?

3 个答案:

答案 0 :(得分:4)

设计DW涉及在建立模型之前理解多个方面。

  1. 数据刷新的频率是多少。
  2. 数据量是多少。
  3. 需要索引哪些列。此外,哪个索引可以帮助您更好。
  4. 写在表上的查询。查询是否聚合?或者他们是直接选择陈述。
  5. 你的历史保护策略是什么。
  6. 您需要的每个列的数据类型。您需要考虑跨平台查询执行......
  7. 等等......

    你需要深入研究它。只使用FK创建表格现在有所帮助,但在数据量增加的时候,它将成为瓶颈。

答案 1 :(得分:1)

您遇到的问题是您正在建模数据,而不是处理。

星型模式基于业务流程,而不是实体关系。

你想要建模什么?模特的颗粒是什么?

我会走出困境,说你可能在模拟销售。有一个事实:销售。如果您需要特定于订单的信息,请考虑它是否是订单维度的一部分,或者是否应作为销售事实中的退化维度和/或度量进行。

答案 2 :(得分:0)

  • 创建Invoice_Header_Fact和Invoice_LineItem_Fact。 (这可以非规范化并在一个表中合并)
  • 使用LineItem Fact中的标题事实中的Order_Key将其与lineitems相关联
  • 创建PO_Header_Fact和PO_LineItem_Fact。
  • 使用LineItem Fact中的标题事实中的PO_Key将其与lineitems相关联
  • 创建一个bridge / xref表,以维护PO和发票之间的多对多关系。

希望这有帮助!