2010-06-27 16 views
8

Ich versuche, Blog-Post-Speicher mit Mongo db zu implementieren.Mongo DB Beziehungen zwischen Objekten

Ich habe zwei Domain-Entitäten bekommt:

"Blog-Post" und "Autor"

Zur Zeit habe ich hinzugefügt authorid Eigenschaft Post Einheit bloggen. Ist das der richtige Ansatz, um die Beziehung zwischen Objekten zu speichern?

Antwort

9

Zur Zeit habe ich die Entität AuthorId der Blogpost hinzugefügt. Ist das der richtige Ansatz, um die Beziehung zwischen Objekten zu speichern?

Ich würde Nein sagen. Sie "sollen" alles, was Sie benötigen, in einem Blog-Dokument in einer denormalisierten Weise speichern (z. B. den Blog-Post, die Kommentare, die Tags, etc.). Wenn Sie also den Namen des Autors anzeigen möchten, sollten Sie ihn dem Blog-Dokument hinzufügen. Dies würde es ermöglichen, die Daten einer ganzen Seite mit einer einzelnen Abfrage zu holen, was gewissermaßen der Punkt einer dokumentenorientierten Datenbank ist.

+6

ein Benutzer der Umbenennung allerdings einen sehr teueren Anruf wird! – Blankman

+2

@Blankman: True. Dennoch denke ich, dass die Philosophie der dokumentenorientierten db darin besteht, ein ganzes Dokument in einer Abfrage abzurufen.Und wie ist das Verhältnis von [Umbenennen eines Benutzers]/[Zeigen eines Blogposts]? Ich denke, es ist sehr niedrig. –

+0

@Blankman, Sie können es tun Async und Updates sind sehr schnell in MongoDB, weil MongoDB Update-in-Place hat. Sie können die Blogposts auch auf authorid indizieren. – TTT

19

Ich denke, dieser Beitrag wird für Sie http://www.mongodb.org/display/DOCS/Schema+Design

Use Cases

Kunde/Auftrag/Order Line-Item

Bestellungen richtig sein sollte eine Sammlung sein. Kunden eine Sammlung. Zeilenelemente sollten ein Array von Zeilenelementen sein, die im Auftragsobjekt eingebettet sind.

Blogging-System.

Beiträge sollten eine Sammlung sein. Post-Autor kann eine separate Sammlung oder einfach ein Feld innerhalb von Beiträgen sein, wenn nur eine E-Mail-Adresse. Kommentare sollten eingebettete Objekte in einem Post für die Leistung sein.

Schema Design Basics

Kyle Banker, 10gen

http://www.10gen.com/presentation/mongosf2011/schemabasics

Indexing & Abfrageoptimierung Alvin Richards, Ältere Dir ector von Enterprise Engineering

http://www.10gen.com/presentation/mongosf-2011/mongodb-indexing-query-optimization

** Diese 2 Videos sind die Bestzeiten auf mongoddb jemals imho gesehen *

+0

danke für die Video-Links! wirklich hilfreich beim Übergang von relationalen DBs zu noSQL. –