MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB Schema Design (array nidificato vs raccolta separata)

Poiché sembra che tu debba effettivamente eseguire query sui dati di pagamento al di fuori del contesto del cliente (ad esempio per i rapporti aggregati), non vorrei aggiungere ogni singola voce di pagamento agli oggetti di raccolta del cliente.

Creerei sicuramente una raccolta di oggetti di pagamento, quindi farei riferimento a una chiave di pagamento nell'oggetto client per ogni pagamento e alla chiave del cliente nell'oggetto di pagamento, in modo da avere un modo definitivo per correlare l'uno all'altro in entrambe le direzioni, oppure una terza raccolta che mappa i clienti ai pagamenti.

Ciò che è preferibile qui può davvero dipendere dal tuo modello di accesso. Ad esempio, potresti non aver nemmeno bisogno di tali "chiavi esterne" su entrambi gli insiemi di oggetti se la ricerca sarà sempre in una direzione per i casi in cui è necessario stabilire la relazione.