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

Fremdschlüssel in Mongo?

Wie kann man eine solche Tabelle in Mongodb entwerfen?

Zunächst einige Namenskonventionen klären. MongoDB verwendet collections statt tables .

Ich denke, es gibt keine Fremdschlüssel!

Nehmen Sie das folgende Modell:

student
{ 
  _id: ObjectId(...),
  name: 'Jane',
  courses: [
    { course: 'bio101', mark: 85 },
    { course: 'chem101', mark: 89 }
  ]
}

course
{
  _id: 'bio101',
  name: 'Biology 101',
  description: 'Introduction to biology'
}

Janes Kursliste weist eindeutig auf einige spezifische Kurse hin. Die Datenbank wendet keine Beschränkungen auf das System an (d. h. Fremdschlüsselbeschränkungen ), also gibt es keine "kaskadierenden Löschungen" oder "kaskadierenden Aktualisierungen". Die Datenbank enthält jedoch die richtigen Informationen.

Darüber hinaus verfügt MongoDB über einen DBRef-Standard, der hilft, die Erstellung dieser Referenzen zu standardisieren. Wenn Sie sich diesen Link ansehen, finden Sie dort ein ähnliches Beispiel.

Wie kann ich diese Aufgabe lösen?

Um es klar zu sagen, MongoDB ist nicht relational. Es gibt keine standardisierte "Normalform". Sie sollten Ihre Datenbank entsprechend den von Ihnen gespeicherten Daten und den Abfragen, die Sie ausführen möchten, modellieren.