2

Je construis un entrepôt de données basé sur les statistiques de la NFL à des fins éducatives que j'apprends ce paradigme - j'ai le problème de modélisation suivantmodélisation de schéma Star - many-to-many

Les joueurs peuvent jouer différentes équipes différentes années de même, les entraîneurs peuvent entraîner différentes équipes différentes années de leur carrière; Les joueurs pourraient également potentiellement jouer différentes positions dans différentes années (rares mais possibles)

Quelle est la meilleure façon de modéliser la répartition entre joueurs, entraîneurs et équipes pour différentes années?

Est-ce que je stockerais les informations d'alignement des différentes années dans une dimension? par exemple DimTeamRoster qui aurait un TimeKey, TeamKey et CoachKey (car une équipe ne peut avoir qu'un seul entraîneur en chef) avec un FactTeamRoster avec un TeamRosterKey, PlayerKey, Positionkey

Ou aurais-je un FactTeamRoster qui aurait un TimeKey, TeamKey, PlayerKey, PositionKey? Mais alors cette approche aurait-elle un sens parce que cette table de faits ne conserverait pas vraiment de mesures, elle enregistrerait simplement la tâche pour cette année

Quelles sont quelques-unes des autres solutions possibles et avantages/inconvénients/justesse de chaque approche?

Répondre

2

Pour commencer, cela ferait - je pense.

enter image description here

dimRole peut ressembler à quelque chose comme

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

Nice, propre. Par intérêt, quel outil avez-vous utilisé pour créer le diagramme? –

+0

@IanNelson ERWin. –

+0

Bon début et assez proche de ce que j'ai imaginé - ma seule question est que cela a-t-il un sens de la stocker comme une table de faits, puisque cette table de faits ne stocke aucune mesure et stocke simplement une affectation? – manning18