4 Stimmen

Was ist falsch mit MongoDB-Verweisen?

Aus einer RDMBS-Umgebung kommend, ist es schwer, nicht an Dinge wie Joins zu denken, besonders wenn man mit der schema-losen MongoDB-Umgebung arbeitet.

Ich habe in einem Blog gelesen, dass DBRefs nur nützlich sind, wenn man den Typ des Objekts kennt, auf das man verweist.

Warum ist das so? Sicherlich haben sie mehr Nutzen als das.

Angenommen, ich habe eine Benutzerkollektion und eine Arbeitgeberkollektion. Viele Benutzer können auf denselben Arbeitgeber verweisen. Für mich wäre das der perfekte Einsatz eines DBRefs. Das widerspricht jedoch dem, was ich in dem Blog gelesen habe.

Sicher, ich könnte den Arbeitgeber in jede Benutzerkollektion einbetten, aber was passiert, wenn sich der Arbeitgeber ändert? Vielleicht ändert der Arbeitgeber seine Adresse oder Telefonnummer oder etwas. Wenn der Arbeitgeber in jedem Benutzer eingebettet ist, müsste ich das eingebettete Dokument jedes Benutzers aktualisieren.

Das kann nicht effizient sein. Oder doch?

10voto

Maxence Punkte 12495

DBRefs ist eine Datenstruktur, die einen Sammlungsnamen und eine Objekt-ID enthält. Wenn Sie den Namen Ihrer Sammlung kennen (wie in Ihrem Beispiel, Arbeitgeber), benötigen Sie keine DBRef. Speichern Sie einfach die Objekt-ID des Arbeitgebers in Ihrer Benutzersammlung. Sie sparen den Speicherplatz, der durch den Sammlungsnamen belegt wird.

Verwenden Sie DBRef, wenn sich der Sammlungsname ändern kann. Zum Beispiel haben Sie eine Kommentarsammlung. Sie möchten sie verwenden, um Kommentare zu Blogbeiträgen und Buchseiten zu speichern (2 verschiedene Sammlungen). Wenn Sie einen Verweis auf den Beitrag oder die Seite in Ihrem Kommentar speichern möchten, müssen Sie eine Datenbankreferenz verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X