Frage

Ich suche nosql Schlüsselwert speichert, der zum Speichern / Pflege der Beziehungen zwischen gespeicherten Einheiten bieten auch. Ich weiß, Google App Engine-Datenspeicher für ein Unternehmen und nicht im Besitz befindlichen Beziehungen zwischen Entitäten ermöglicht. Hat eine der beliebten nosql Store bietet etwas ähnliches?

Auch wenn die meisten von ihnen sind Schema weniger, gibt es Methoden, um geeignete Beziehungen auf einen Schlüsselwert speichern?

War es hilfreich?

Lösung

Es gehört zu dem Kern verfügt über Graph-Datenbanken Unterstützung für Beziehungen zwischen Entitäten zu schaffen. Typischerweise Sie Ihre Einheiten als Knoten und die Beziehungen als Beziehungen / Kanten im Graphen modellieren. Im Gegensatz zu RDBMS Sie müssen keine Beziehungen im Voraus definieren - fügen Sie sie einfach auf den Graphen nach Bedarf (Schema frei). Ich habe eine Domain-Modellierung Galerie ein paar Beispiele zu geben, wie dies in der Praxis aussehen kann. Die Beispiele verwenden die Neo4j GraphDB, ein Projekt, das ich beteiligt bin. Die Mailingliste dieses Projekts verwenden, um sich als sehr hilfreich für die grafische Darstellung Modellierung Fragen.

Die dokumentenorientierte Datenbank Riak hat die Unterstützung für Verbindungen zwischen Dokumenten.

Sie können Unterstützung für Beziehungen auf jede Datenbank-Engine (wie Schlüssel / Wert) hinzufügen, aber es kommt nicht whithout Arbeit. Es kommt alles auf Ihren Anwendungsfall nach unten. Wenn Sie weitere Informationen zur Verfügung stellen, es ist einfacher, eine sachdienliche Antwort zu kommen.

Hoppla, jetzt sah ich, dass der Titel schon sagt „nosql store“ und dann Ihre tatsächliche Frage verengt diese nach unten zu „nosql Schlüsselwertspeicher“. Als Schlüssel / Wert-Speicher hat keine Semantik für Beziehungen zwischen Entitäten definiert ich immer noch meine Antwort schreiben würde.

Andere Tipps

MongoDB ist eine Dokumentendatenbank, kein Schlüssel / Wert-Speicher. Sie enthält jedoch eine einfache Form der inter-Dokumentreferenzen . Diese Arbeit mehr oder weniger wie SQL Fremdschlüssel, die automatisch auf Null gesetzt werden, wenn das referenzierte Objekt gelöscht wird.

Dies ist ausreichend für die gleiche Art von Dingen, für die Sie Fremdschlüssel verwenden würden, aber es ist nicht für ernsthaften Graph Traversal optimiert.

Die Beziehungen in der Google App Engine sind nur Schlüssel für Unternehmen, die automatisch dereferenzierte sind, wenn im Code abgerufen. Und sind nur Werte, wenn sie gegen zu Filter verwendet. Es ist eine Funktion des DB Api eher als alles explizit, so dass der Zugriff auf die Reference einfach eine Abfrage für das referenzierte Modell durchführt Zugriff auf das Objekt zu erhalten.

Wenn man sich so etwas wie MongoDB aussehen, werden die Beziehungen in-Objekt gespeichert (von dem, was ich remeber), aber sie können aber auch gespeichert werden Sie im Sinne möchten, dass Sie eine API erstellen würde, die die verknüpfte Tabelle suchen würde Ihr Element in der Beziehung in einer ähnlichen Weise wie die die App Engine funktioniert.

Paul.

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