plusieurs à plusieurs avec des colonnes supplémentaires

J’ai donc deux tables Users et Groups . Ces tables sont (dans la firebase database) UGlink avec une table de liens UGlink . Désormais, à l’exception des clés étrangères principales, la table des liens possède une colonne supplémentaire: Date .

D’après ce que je comprends, cela signifie que je dois avoir deux plusieurs-à-un, avec le lien “au milieu”.

Cependant, comme la valeur de la colonne supplémentaire ne m’intéresse presque jamais, y a-t-il un moyen d’éviter le lien? C’est ce que je veux pouvoir écrire:

 thisUser.Groups 

pour obtenir les groupes, au lieu de:

 thisUser.UGlinks.Group 

entrez la description de l'image ici

Le many-to-many , sans le mappage explicite de la table d’appariement en tant qu’entité, est naturellement pris en charge dans NHibernate. Ainsi, dans le cas où la colonne Date est générée automatiquement ou nulle (il n’est pas nécessaire d’insérer celle-ci dans app / NHiberante) , nous pouvons le faire comme ici: 6.8. Associations bidirectionnelles

   ...        ...       

Donc, ce que nous avons est une cartographie, dans laquelle NHiberante se soucie de la table d’appariement, et nous pouvons faire:

 thisUser.Groups 

Mais si je peux suggérer, n’allez pas avec many-to-many . L’object d’appariement plusieurs avec un est (je dirais) une meilleure solution, car il prend en charge la recherche d’utilisateurs par groupes et vice versa.

Voir le chapitre 24. Meilleures pratiques , citez:

N’utilisez pas de mappages d’associations exotiques.

Les bonnes utilisations pour de vraies associations plusieurs à plusieurs sont rares. La plupart du temps, vous avez besoin d’informations supplémentaires stockées dans la “table de liens”. Dans ce cas, il est bien préférable d’utiliser deux associations un-à-plusieurs à une classe de liaison intermédiaire. En fait, nous pensons que la plupart des associations sont un-à-plusieurs et plusieurs-à-un, vous devez être prudent lorsque vous utilisez un autre style d’association et vous demander si c’est vraiment nécessaire.

Voici quelques explications plus détaillées sur la façon de procéder sans plusieurs-à-plusieurs: Nhibernate: Comment représenter des relations plusieurs-à-plusieurs avec des relations un-à-plusieurs?