gpt4 book ai didi

sql - 如果您的事实有维度的多个实例怎么办?

转载 作者:行者123 更新时间:2023-12-05 03:06:58 26 4
gpt4 key购买 nike

在一家服装店的星型模式中,有一个交易事实来捕获所有购买的东西。这通常会有通常的日期、时间、金额维度,但也会有一个人来表明是谁买的。在某些情况下,您可以让多个人参与同一笔交易。如果外键在 Fact 表上并且因此只能指向一个人,那么如何建模?

最佳答案

维度建模中的标准技术是使用“桥接”表。您会发现的典型示例是拥有账户(或交易)的客户群体,以及在就诊时有多种诊断的患者。

在您的情况下,这可能看起来像:

表:FactTransaction

  • PersonGroupKey
  • 其他 FactTable 列

表:BridgePersonGroup

  • PersonGroupKey
  • 个人 key

表:DimPerson

  • 个人 key
  • 其他人专栏

对于每一组人,您将创建一个新的 PersonGroupKey 并以这样的行结尾:

PersonGroupKey 1, PersonKey 5
PersonGroupKey 1, PersonKey 3
PersonGroupKey 2, PersonKey 1
PersonGroupKey 3, PersonKey 6

PersonGroupKey 代表 Fact 中的一组人。

从逻辑上讲,应该有一个进一步的表,DimPersonGroup,它只列出了 PersonGroupKeys,但大多数数据库不需要这个,所以通常 Kimball 建模者会放弃它。

以上是Bridge表的基础,大家可以根据自己的情况考虑修改!

关于sql - 如果您的事实有维度的多个实例怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48674242/

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