Frage

Ich versuche herauszufinden, wie ich dies am besten für mein System implementieren kann ... und meinen Kopf vorerst aus dem RDBMS -Raum herausholen kann ...

Ein Teil meines aktuellen DB hat drei Tische: Show, ShowErry und Eintrag. Grundsätzlich ist Showentry eine viel-zu-Viele-Tritt-Tabelle zwischen Show und Eintrag. In meinem RDBMS denken, dass es ziemlich logisch ist, da Änderungen, um Details anzeigen, an einem Ort und mit dem Eintrag zu sehen sind.

Was ist der beste Weg, dies in einem dokumentbasierten Speicher zu reflektieren? Ich bin mir sicher, dass es keine Möglichkeit gibt, dies zu tun, aber ich kann nicht anders, als zu denken, wenn dokumentbasierter Speicher für diesen Fall überhaupt geeignet ist.

Zu Ihrer Information, ich erwähne derzeit die Implementierung von Ravendb. Während die Diskussionen über das allgemeine NOSQL -Design gut sein werden, wird ein Ravendb -fokussierter fantastisch!

Danke: D.

War es hilfreich?

Lösung

Bei der Modellierung einer vielen zu viele Beziehung in einer Dokumentendatenbank speichern Sie normalerweise eine Sammlung ausländischer Schlüssel in nur einem der Dokumente. Das Dokument, das Sie ausgewählt haben, hängt weitgehend von der Richtung ab, in der Sie die Beziehung durchqueren möchten. Es ist trivial, es in eine Richtung zu durchqueren, es erfordert einen Index.

Nehmen Sie das Beispiel für den Einkaufskorb. Es ist wichtiger zu wissen, welche Artikel sich in einem bestimmten Korb befinden, als welche Körbe ein bestimmtes Element enthalten. Da wir in der Regel der Beziehung in Korb zu Elichtung folgen, ist es sinnvoller, Artikel-IDs in einem Korb zu speichern, als dass es in einem Artikel Korb-IDs speichert.

Sie können die Beziehung weiterhin in die entgegengesetzte Richtung durchqueren (z. B. Körbe finden, die ein bestimmtes Element enthalten), indem Sie einen Index verwenden. Der Index wird jedoch im Hintergrund aktualisiert, sodass er nicht immer 100% genau ist. (Sie können warten, bis der Index genau wird WaitForNonStaleResults, Aber diese Verzögerung wird in Ihrer Benutzeroberfläche zeigen.)

Wenn Sie in beiden Richtungen eine sofortige Genauigkeit von 100% benötigen, können Sie Fremdschlüssel in beiden Dokumenten speichern. Ihre Bewerbung muss jedoch zwei Dokumente aktualisieren, wenn eine Beziehung erstellt oder zerstört wird.

Andere Tipps

Dies hat einen langen Beitrag zur Lösung meiner Frage geschafft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top