Database design 星型模式建模-多对多

Database design 星型模式建模-多对多,database-design,data-warehouse,schema-design,star-schema,Database Design,Data Warehouse,Schema Design,Star Schema,我正在基于NFL统计数据构建一个数据仓库,用于教育目的,因为我学习了这个范例-我有以下建模问题 球员可以在不同的年份为不同的球队效力,同样,教练可以在不同的职业生涯中为不同的球队效力;球员也可能在不同的年份打不同的位置(罕见但可能) 对不同年份的球员、教练和球队之间的分配进行建模的最佳方法是什么 我是否将不同年份的名册信息存储在维度中?例如,DimTeamFloster将有一个TimeKey、TeamKey和CoachKey(因为一个团队只能有一名主教练),而FactTeamFloster则有一

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

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

对不同年份的球员、教练和球队之间的分配进行建模的最佳方法是什么

我是否将不同年份的名册信息存储在维度中?例如,DimTeamFloster将有一个TimeKey、TeamKey和CoachKey(因为一个团队只能有一名主教练),而FactTeamFloster则有一个TeamRosterKey、PlayerKey和Positionkey

或者我会有一个FactTeamFloster,它会有一个时间键、团队键、玩家键、位置键?但是这种方法有意义吗?因为事实表实际上不会存储任何度量,它只是存储当年的任务


其他可能的解决方案以及每种方法的优缺点/正确性是什么

首先,我想这样就可以了

dimRole
可能看起来像

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

很好,干净。出于兴趣,您使用了什么工具来创建图表?很好的开始,非常接近我的设想-我唯一的问题是,将其存储为事实表是否有意义,因为事实表实际上并不存储任何度量值,只是存储一个赋值?@manning18是的,看到了吗