Bonjour,
Je voudrais savoir quelle est la meilleure méthode pour modéliser un lien (n,m) d'une table vers elle-même.
Exemple: si facebook avait une table "Utilisateurs", comment représenteriez-vous un lien d'amitié ?
Si Pierre est ami avec Paul et Jacques (Paul et Jacques ne sont pas amis)
- soit je stocke dans ma table d'association un seul lien (arbitrairement)
(ID_Paul, ID_Pierre)
(ID_Pierre, ID_Jacques)
=> Dans ce cas là, toutes les requêtes de l'application doivent être dédoublées : pour les amis de Pierre : select champ2 from Utilisateurs where champ1=ID_Pierre UNION select champ1 from Utilisateurs where champ2=ID_Pierre
- soit je stocke tout en double
(ID_Paul, ID_Pierre)
(ID_Pierre, ID_Paul)
(ID_Pierre, ID_Jacques)
(ID_Jacques, ID_Pierre)
ce qui permet d'avoir une requête propre (pour les amis de Pierre select champ2 from Utilisateurs where champ1=ID_Pierre), mais l'information est dupliquée.
D'autres solutions? Qu'est-ce qui est recommandé?
Merci
Partager