Je commence juste un nouveau projet Rails 3 en utilisant Mongoid ORM pour MongoDB. Il y a juste une chose que je n'arrive pas à comprendre, et c'est comment avoir une relation plusieurs-à-plusieurs. Maintenant, il y a de bonnes chances que j'aborde mal ce problème, mais autant que je sache, il y a au moins deux conteneurs dans mon projet qui ont besoin d'une relation plusieurs-à-plusieurs. Je préférerais traiter les deux modèles comme des modèles «de première classe» et les attribuer chacun avec son propre conteneur.Repenser les relations relationnelles plusieurs-à-plusieurs pour MongoDB
C'est la façon la plus simple que je peux penser à structurer mon many-to-many:
// Javascript pseudo modeling
// -------------------- Apps
{
app: {
_id: "app1",
name: "A",
event_ids: ["event1","event2"]
}
}
{
app: {
_id: "app2",
name: "B",
event_ids: ["event1"]
}
}
// -------------------- Events
{
event: {
_id: "event1",
name: "Event 1",
}
}
{
event: {
_id: "event2",
name: "Event 2",
}
}
Pour autant que je peux dire que c'est la quantité minimum d'informations ont besoin d'en déduire un nombre-to beaucoup de relation. Mon hypothèse est que je devrais avoir une procédure de réduction de carte pour déterminer quelles applications appartiennent à un événement. Je devrais également écrire post-commit/save hooks sur Event pour mettre à jour App.event_ids si une application est ajoutée ou supprimée d'un modèle d'événement.
Suis-je sur la bonne voie ici? Si quelqu'un a des exemples de code Mongoid ou Mongomapper d'une relation many-to-many, pourriez-vous partager s'il vous plaît.
Merci. C'est l'approche que j'ai prise. Je poste comment j'ai implémenté ceci ci-dessous. –