J'ai deux tables/collections; Utilisateurs et groupes Un utilisateur peut être membre d'un nombre quelconque de groupes et un utilisateur peut également être propriétaire d'un nombre quelconque de groupes. Dans une base de données relationnelle, j'aurais probablement une troisième table appelée UserGroups avec une colonne UserID, une colonne GroupID et une colonne IsOwner. J'utilise MongoDB et je suis sûr qu'il existe une approche différente pour ce type de relation dans une base de données de documents. Dois-je intégrer la liste des groupes et des groupes-en tant que propriétaire dans la table des utilisateurs en tant que deux tableaux d'ObjectID? Dois-je également stocker la liste des membres et des propriétaires dans la table Groupes sous la forme de deux tableaux, en reflétant la relation provoquant une duplication des informations de relation?Comment organiser une relation plusieurs à plusieurs dans MongoDB
Ou est une table UserGroups de pontage un concept légitime dans les bases de données de documents pour de nombreuses relations?
Merci
Voir aussi les réponses à [cette question] (http://stackoverflow.com/questions/2336700/mongodb-many-to-many-association) et [cette question] (http://stackoverflow.com/questions/ 5498692/many-to-many-relations-in-couchdb-or-mongodb) –
Je sais que c'est plutôt vieux mais je m'interroge aussi sur l'échelle.Et si vous avez 1000 groupes? – FarscapePROJ
Point important - Une autre option, dans ce cas, consiste à utiliser l'équivalent d'une relation de jonction d'une base de données SQL - une collection intermédiaire avec deux clés étrangères - une pour chaque collection associée. Dans ce cas, vous pouvez exécuter 3 requêtes: (1) un find() normal pour obtenir les résultats parents, (2) une requête IN pour obtenir les résultats intermédiaires et enfin (3) une requête IN utilisant les clés étrangères dans le résultats intermédiaires pour trouver des enregistrements enfants. (Voici comment nous implémentons cette fonctionnalité dans Waterline) – mikermcneil