2016-07-12 17 views
0

Ich komme von sql/django's ORM und liebevolle rethinkdb, außer dem Mangel an "Eindeutigkeitsbedingungen", die für meine Echtzeit-App absolut entscheidend sind.RethinkDB - Mehrere eindeutige Felder?

Wie kann sichergestellt werden, dass zwei verwandte Felder "eindeutig zusammen" sind? Die einzige Antwort, die ich finden kann, ist 3 Jahre alt und nicht notwendig anwendbare Lösung für mein Problem.

Zum Beispiel: Benutzer können viele „leicht angepasst“ Widgets haben, aber nur eine von jeder Farbe. Also muss ich sicherstellen, Benutzer/widget_color Kombination ist einzigartig zusammen.

Benutzer 1:

  • Blau-Widget // { 'Blue-Widget': {size: 5, ValueX: 13}}
  • Red-Widget
  • Grün Widget

  • - Es sollte keine Möglichkeit geben, dass dieser Benutzer ein anderes "blaues Widget" speichern kann -

Benutzer 2:

  • Blau-Widget // { 'Blue-Widget': {size: 1, ValueX: 20}}
  • Red-Widget
  • Lila Widget

Kann ich das mit RethinkDB machen?

Antwort

2

Sie können den Primärschlüssel in ein Array von [user, color] umwandeln und nur ein Dokument mit demselben Benutzer-/Farbpaar einfügen. Wie widgets.insert({id: ['mlucy', 'blue'], ...}).