初学者维度-建模问题:
你是如何在正式的“业务流程”之外的维度之间建立关系的?例如,假设你在做一个梦幻棒球联盟的模特。一些明显的维度将是团队和球员,一个例子的事实将是一个球员来击球的结果。我所困惑的是如何简单地跟踪哪些球员在哪支球队。
在第三种形式中,我将有一个交叉参考表与球队和球员的FK,和任何额外的字段,具体涉及两者的结合(招聘日期,板凳球员指示器,等等)。这与星型模式有什么不同吗?如果不是,那么这个表是否被认为是一个事实表,没有数字属性?
让我感到困惑的是,这张交叉参考表本身从来没有多大用处。只有当加入其他事实表时,才有意义获得与另一个事实/过程相关的团队中的球员名单。这使得它更像是一个维度,而不是一个事实。
发布于 2013-08-03 13:47:04
在维度建模中,您必须选择要建模的过程。如果团队成员关系从属于您的模型,您可以忽略它,并知道当一个球员为团队击球时,他是属于一个团队的。
当然,这就忽略了那些从不击球的球员。
如果您想要考虑这种关系,是一个多对多的关系,显而易见的解决方案是另一个事实表。事实表甚至可能是无事实依据的(当您没有关于它的其他信息时,但是在这种情况下,球员的薪水将是一个明显而重要的事实)。
发布于 2013-08-28 06:27:37
另一个选项是对播放机使用类型2的SCD。随着时间的推移,这是一种针对玩家存储属性更改的方法。
所以对于一个球员来说,你可能有四个维度的记录,因为那个球员跨越四个队移动。维度记录有开始日期和结束日期,所以如果玩家在一月份移动了球队,直到二月才开始比赛,那么这些信息仍然会被存储。
你用这种方式追踪任何玩家属性,比如受伤等。
这是一种跟踪“缓慢”变化的方法,而不需要特殊的事实。
如果确实需要某种历史状态报告,只需将player维度加入日期维度即可。
看一看本文中的第二类:
dimension
https://stackoverflow.com/questions/18007498
复制相似问题