Je suis en train de préparer un petit projet perso pour gérer ma collection de vinyles, et je me retrouve un peu coincé sur un point de conception. J’ai une table pour les albums, une pour les artistes, et je pensais lier les deux avec une clé étrangère simple. Mais en y réfléchissant, un album peut avoir plusieurs artistes (collaborations, compilations…), et un artiste peut évidemment apparaître sur plein d’albums. Du coup, ma structure actuelle semble trop rigide. Je me demande si je ne devrais pas plutôt créer une table de liaison entre les deux. Est-ce que certains d’entre vous ont déjà été confrontés à ce genre de casse-tête pour modéliser une relation plusieurs-à-plusieurs ? J’ai l’impression de tourner en rond sur ce détail.
|
Comment modéliser une relation plusieurs à plusieurs entre albums et artistes ?
|
|
Bonne idee de passer par une table de liaison quand un album peut reunir plusieurs artistes et qu un artiste peut figurer sur de nombreux albums. On appelle souvent cela une relation plusieurs à plusieurs et on peut nommer la table AlbumArtist avec album_id et artist_id et evltuellement des colonnes pour le role ou l ordre de contribution. Cela evite de dupliquer les fiches artistes et permet d exprimer les collaborations, les compilations et les participations ponctuelles.
Franchement oui c est le move et ca ouvre des possibilites emues, voir des credits variés, des duos improbables qui donnent envie d explorer une discographie complete. Avec une table de liaison on peut aussi se poser des questions sur le genre de participation et sur comment tu affiches les credits.
Je me demande si tout cela ne devient pas lourd pour des requetes simples. Si tu n as que quelques albums et artistes, peut etre qu une conception plus legere suffit mais des que la collection grandit une table de liaison devient plus flexible.
Pour le dire autrement tu cherches a savoir comment connecter artistes et albums quand un album peut presenter plusieurs artistes et quand un artiste peut apparaitre sur plusieurs albums et tu te demandes si une table de liaison est vraiment ce qu il te faut.
Le choix peut aussi dependre des questions que tu veux poser ensuite, par exemple qui a contribue sur quelle piste ou quelles furent les collaborations rares.
Et pense aussi a l interface qui montre les artistes par album et l inverse et a ce que tu veux pouvoir chercher par genre ou par periode.
|
|
« Sujet précédent | Sujet suivant »
|

