2016-04-24 5 views
0

Ich bin nicht gut in Englisch!
Es gibt eine Tabelle in Cassandra 3.5, die alle Spalten einer Zeile nicht zur gleichen Zeit kommen. Eindeutig für die Tabelle sind einige Spalten, die in einer Zeile zusammen einzigartig sind, aber einige davon sind zunächst null. Ich kann sie wegen des Nullwerts nicht als Primärschlüssel festlegen. Ich habe eine Spalte mit Name ID identifiziert und uuid in Cassandra eingeben.Wie man einzigartigen Schlüssel außer Primärschlüssel in Cassandra hat?

Wie kann ich einen eindeutigen Schlüssel mit diesen Spalten in Cassandra zusammen haben?
Ist mein Datenmodell wahr?
Wie kann ich dieses Problem lösen?

Antwort

2

Sie können nicht. Es ist keine relationale DB. Verwenden Sie Clustering- und/oder Partitionierungsschlüssel, um eine eindeutige Integritätsbedingung hinzuzufügen.

Siehe this answer

eindeutige Werte zu speichern, erstellen Sie eine separate Tabelle Ihren einzigartigen Wert als ein Schlüssel mit. Überprüfen Sie, ob es vorhanden ist, indem Sie diese Tabelle anfordern, bevor Sie eine Zeile einfügen. Aber Vorsicht, auch wenn Sie dies tun, können Sie nicht sicherstellen, dass es in Ihrer Final Table einzigartig ist, wenn Sie zwei gleichzeitige Einfügungen haben.

Grundsätzlich würde ich Cassandra empfehlen, wie es wirklich ist: Ein Datenspeicher. Und finden Sie einen Weg, Ihre Geschäftslogik dort zu implementieren, wo sie hingehört: in Ihrem Code.

Verwandte Themen