星型模式建模 - 多对多

时间:2011-09-29 20:52:12

标签: database-design data-warehouse schema-design star-schema

我正在建立一个基于NFL统计数据的数据仓库用于教育目的,因为我学习了这个范例 - 我有以下建模问题

球员可以在不同的年份为不同的球队效力,同样的教练可以在不同的职业生涯中指导不同的球队;球员也可能在不同年份也可能扮演不同的位置(罕见但可能)

对不同年份的球员,教练和球队之间的任务进行建模的最佳方法是什么?

我会将不同年份的名册信息存储在维度中吗?例如DimTeamRoster,它有一个TimeKey,TeamKey和CoachKey(因为一个团队只能有一个主教练),FactTeamRoster有一个TeamRosterKey,PlayerKey,Positionkey

或者我会有一个FactTeamRoster,它有一个TimeKey,TeamKey,PlayerKey,PositionKey?但那么这种方法是否有意义,因为这个事实表并不真正存储任何措施,它只是存储当年的作业

每种方法的其他一些可能的解决方案和优点/缺点/正确性是什么?

1 个答案:

答案 0 :(得分:2)

首先,我会这样做。

enter image description here

dimRole可能看起来像

RoleKey     RoleName        RoleGroup
---------------------------------------
  1         quarterback      player
  2         tackle           player
  3         head coach       coach
  4         assistant coach  coach