MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB Schema Design (tableau imbriqué vs collection séparée)

Puisqu'il semble que vous aurez réellement besoin d'interroger les données de paiement en dehors du contexte du client (c'est-à-dire pour les rapports agrégés), je ne voudrais pas ajouter chaque élément de paiement individuel aux objets de collecte du client.

Je créerais certainement une collection d'objets de paiement, puis je ferais référence à une clé de paiement dans l'objet client pour chaque paiement et à la clé client dans l'objet de paiement, de sorte que vous ayez un moyen définitif de relier l'un à l'autre dans les deux sens, ou que vous ayez une troisième collection mappant les clients aux paiements.

Ce qui est préférable ici peut vraiment dépendre de votre modèle d'accès. Par exemple, vous n'aurez peut-être même pas besoin de ces "clés étrangères" sur les deux ensembles d'objets si la recherche va toujours se faire dans une direction pour les cas où vous devez établir la relation.