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

MongoDB-Anfänger - normalisieren oder nicht normalisieren?

Probieren Sie diesen Ansatz aus:

Finden Sie heraus, welche Einheit (oder Einheiten) der/die Held(en) sind

Mit „Held“ meine ich die Entität(en), um die sich die Datenbank dreht. Nehmen wir Ihr Beispiel. Der Held des Immobilienbeispiels ist das Haus*.

Eigentümer ermitteln

Gehen Sie die anderen Entitäten wie Eigentümer, Agentur, Bilder und Bewertungen durch und fragen Sie sich, ob es sinnvoll ist, deren Informationen zusammen mit dem Haus zu platzieren. Hätten Sie einen kaskadierenden Löschvorgang für einen der Fremdschlüssel in Ihrer relationalen Datenbank? Wenn ja, dann impliziert das Eigentum.

Finden Sie heraus, ob es tatsächlich darauf ankommt, dass Daten denormalisiert werden

Sie haben Agentur- (und wahrscheinlich Besitzer-) Details, die über mehrere Häuser verteilt sind. Spielt das eine Rolle?

Ihre Haussammlung wird wahrscheinlich so aussehen:

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

*Eigentlich ist es wahrscheinlich die Anzeige des Hauses (da Häuser normalerweise auf einer Immobilien-Website beworben werden und das wahrscheinlich das ist, was Sie wirklich sind daran interessiert), also bedenke das einfach