J'ai rencontré un problème de conception : dans un projet, j'ai trois tableaux : League, Players, et une table d'association LeagueToPlayers qui établit des connexions multiples entre les deux premières (car un joueur peut jouer simultanément dans deux ligues ou plus) :
League Players LeagueToPlayers
Id Name Id Alias LeagueId PlayerId
=-------- ------------ ----------------
1 League A 1 Longcat 1 1
2 League B 2 Leeroy Jenkins 1 2
3 League C 3 xyz 2 1
4 League D 4 qw3rty 2 3
5 Myrkgrav 3 2
4 1
(...) (...) 4 3
5 1
(...)
Mon problème est que je dois maintenant établir une relation de joueur à joueur. De mon point de vue, deux choses peuvent être faites : soit un champ supplémentaire est introduit dans la table Player (mappage d'un autre PlayerId) - ce qui est un assez mauvais pari car, selon toute probabilité, il s'agira d'une relation 1..* - soit une autre table d'association est créée (je n'aime pas vraiment l'idée, mais je suppose qu'il n'y a pas d'autre moyen).
J'aimerais connaître votre point de vue sur cette question... des idées brillantes ?
Salutations, Hal
EDIT : comme mentionné dans les commentaires, il s'agit d'une métaphore. Le type d'objets présents dans la table "Player" varie énormément (pensez à deux cents types distincts) et ils doivent vraiment être mappés de cette façon. Les objets de la table "Player" peuvent se référer les uns aux autres car ils finissent par participer au même processus et, en tant que tels, ils sont liés les uns aux autres. Cette connexion est définitivement 1 *