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

Principiante MongoDB:normalizzare o non normalizzare?

Prova questo approccio:

Determina quale entità (o entità) sono gli eroi

Con "eroe", intendo le entità su cui è centrato il database. Prendiamo il tuo esempio. L'eroe dell'esempio immobiliare è la casa*.

Determina le proprietà

Passa in rassegna le altre entità, come il proprietario, l'agenzia, le immagini e le recensioni e chiediti se ha senso inserire le loro informazioni insieme alla casa. Avresti un'eliminazione a cascata su una qualsiasi delle chiavi esterne nel tuo database relazionale? Se è così, allora ciò implica la proprietà.

Scopri se è davvero importante che i dati siano denormalizzati

Avrai i dettagli dell'agenzia (e probabilmente del proprietario) distribuiti su più case. Importa?

La tua collezione di case sarà probabilmente simile a questa:

house: {
owner,
agency,
images[], // recommend references to GridFS here
reviews[] // you probably won't get too many of these for a single house
}

*In realtà, è probabilmente l'annuncio della casa (dal momento che le case sono generalmente pubblicizzate su un sito web immobiliare e probabilmente è quello che sei realmente interessato a) quindi consideralo