【发布时间】:2020-11-19 05:29:29
【问题描述】:
如果我有各个 NFL 球队的事实表。其中一个关系是Player 和Team 之间的关系。一个团队包含许多球员。如果事实表基于Season+Team,我如何将player 中的一对多键添加到fact 表中?以下是我目前拥有的:
【问题讨论】:
标签: ssas olap cube dimensional-modeling
如果我有各个 NFL 球队的事实表。其中一个关系是Player 和Team 之间的关系。一个团队包含许多球员。如果事实表基于Season+Team,我如何将player 中的一对多键添加到fact 表中?以下是我目前拥有的:
【问题讨论】:
标签: ssas olap cube dimensional-modeling
简短的回答是您不会将播放器中的一对多键添加到事实表中。相反,您将在 Team Dim 和 Player Dim 之间添加一个桥接表。
更长的答案/背景...
当您设计事实表时,您需要定义其粒度,即哪些维度唯一标识事实中的每条记录。一旦你定义了这个粒度,你就不应该对设计进行任何会改变粒度的更改(除非你已经意识到最初的粒度是错误的并且你需要从头开始重新定义你的事实表。
您已将事实表粒度定义为 Season+Team,因此您无法将 Player 添加到事实表中,因为这会改变粒度。
如果您确实添加了桥接表,那么它将允许您按玩家报告您的事实,但它也会给您的报告带来风险,您需要注意这一点。例如,您可以显示每位玩家每年的胜场数,但您无法汇总这些结果,因为您的胜场数会被重复计算(同一团队中的每个玩家实际上都在获得相同的胜场数)
【讨论】: