MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Schemadesign (verschachteltes Array vs. separate Sammlung)

Da es sich so anhört, als müssten Sie die Zahlungsdaten tatsächlich außerhalb des Kontexts des Kunden abfragen (d. h. für aggregierte Berichte), möchte ich nicht jeden einzelnen Zahlungsposten zu den Kunden-Sammelobjekten hinzufügen.

Ich würde auf jeden Fall eine Zahlungsobjektsammlung erstellen und dann entweder für jede Zahlung einen Zahlungsschlüssel im Kundenobjekt und den Kundenschlüssel im Zahlungsobjekt referenzieren, sodass Sie eine endgültige Möglichkeit haben, einen in beide Richtungen miteinander in Beziehung zu setzen oder zu haben eine dritte Sammlung, die Kunden Zahlungen zuordnet.

Was hier vorzuziehen ist, kann wirklich von Ihrem Zugriffsmuster abhängen. Beispielsweise benötigen Sie möglicherweise nicht einmal solche "Fremdschlüssel" für beide Objektsätze, wenn die Suche in Fällen, in denen Sie die Beziehung herstellen müssen, immer in eine Richtung erfolgen soll.