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

Documento incorporato vs riferimento nel modello di progettazione della mangusta?

Dipende principalmente da come interrogherai e aggiornerai i tuoi dati. Anche la coerenza e la dimensione del documento sono importanti in questo caso. Ecco un buon riepilogo su quando si fa riferimento o si incorporano documenti:

Incorporamento:

  • Piccoli documenti secondari
  • Dati che non cambiano regolarmente
  • L'eventuale coerenza è accettabile
  • Documento che cresce di un piccolo importo
  • Dati di cui avrai spesso bisogno per eseguire una seconda query per recuperare
  • Letture veloci

Riferimento:

  • Grandi documenti secondari
  • Dati volatili
  • È necessaria una coerenza immediata
  • Documenti che crescono molto
  • Dati che escluderai spesso dai risultati
  • Scrive veloci

Questo è un estratto da un libro sul mongo che ho letto. Queste sono solo regole generali ma dalla mia esperienza, il loro utilizzo rende molto chiaro se fare riferimento o incorporare la maggior parte delle volte.

Preferirei fare riferimento a Forum in questo caso. Ma per favore considera tutte le tue esigenze. Ad esempio, se fai riferimento a Forum da Utente e devi interrogare tutti gli Utenti di un particolare Forum, la query potrebbe essere lenta in questo caso. Se fossi in te, comporrei un elenco di tutto ciò di cui ho bisogno e poi usando le regole generali troverei un equilibrio tra pro e contro dell'incorporamento e del referenziamento.

Spero che ti aiuti!