gpt4 book ai didi

join - 如何避免星型模式中的复杂连接?

转载 作者:行者123 更新时间:2023-12-04 02:23:28 25 4
gpt4 key购买 nike

我的事实表包含他参加的类(class)的用户分数。我必须在报告中显示的类(class)的一些细节来自不止一个表(在实际的 OLTP 数据库中)。
我是否在维度表中创建该类(class)条目的非规范化版本?
或者我只是将事实表直接连接到类(class)表,连接到描述该类(class)的其他表(course_type、创建该类(class)的教员等)

最佳答案

Snowflaking 或 bridge tables 确实使连接变得更加复杂,不仅从编码的角度来看,它还使 BI 用户的操作变得不那么简单。

在大多数情况下,我会将这些直接放在现有或额外的维度表中。

例如,您有一个分数事实表,它在一个维度中包含用户详细信息,该维度可能包含也可能不包含用户的人口统计信息(也许它只是一个桥梁)。有时最好拆分人口统计信息。因此,即使性别和年龄可能与用户实体相关联,但在维度模型中,这些可能是单独的维度或集中在一个维度中 - 这一切都取决于使用场景。

也许您的分数与一个州有关,而州有地区(雪花)。直接链接区域维度而不是通过州维度进行分析可能效率更高。

我认为您会发现维度模型是一种非常实用的非规范化方法。不可协商的主要事情是事实——之后维度的选择在很大程度上取决于数据的行为、您对常见使用场景的远见——并避免陷入维度太少和维度太多的问题。

关于join - 如何避免星型模式中的复杂连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3141092/

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