2014-12-10 8 views
6

Ich frage mich, wie man Beziehungen in Aerospike darstellen würde? Ich weiß, es ist ein Key-Value-Geschäft, aber gibt es ein Beispiel, das gegeben werden kann?Beziehungen in Aerospike

Zum Beispiel: Wenn ein Benutzer im System und ich möchte eine Liste von Thing-Datensätze für diesen Benutzer erhalten.

Antwort

4

paar schnelle Ideen:

1- jeder Benutzer einen Datensatz (für herkömmliche RDBMS Äquivalent einer Reihe) werden mit mehreren Behältern, wobei jeder Behälter in den Primärschlüssel einer ‚Thing‘ Record aufweisen. Weitere Details zu Aerospikes Datenmodell here finden Sie hier. Dies sollte gut funktionieren, wenn die Anzahl der mit einem Benutzer verknüpften Dinge ziemlich niedrig ist (typischerweise unter 100).

2- Wenn Sie eine große Anzahl von "Things" -Datensätzen pro Benutzer zugeordnet haben, können Sie möglicherweise eine LDT (Large Data Type) wie eine LLIST verwenden.

Hoffe, das hilft!

4

Ein Weg, wie NoSQL-Schlüssel/Wert-Speicher von der relationalen Denkweise abweichen, besteht darin, dass viele-zu-eins-Beziehungen in derselben Tabelle mithilfe von Listen und Maps dargestellt werden können.

Zum Beispiel, wenn Ihr Benutzer mehrere Kreditkarten hat, von denen jede ein Tupel von (Kartentyp, letzte 4 Ziffern der Karte, das Token vom Prozessor für die Karte, Rechnungs Postleitzahl) ist, können diese vorhanden sein als eine Liste von Karten. Es gibt JOINs zwischen zwei Tabellen, die eine Viele-zu-Eins-Beziehung darstellen, da ein RDBMS atomare Daten modelliert, wobei in Aerospike diese Daten als komplexer Datentyp modelliert werden.