Couchbase Datenmodell Benutzer/Gruppen

Hallo

vielleicht kann mir jemand eine Empfehlung geben zu einer Couchbase Modellierung.

Es geht um die Speicherung von Benutzern, die von anderen Gruppenmitgliedern in Gruppen eingeladen werden können, dabei darf eine Gruppe maximal X Mitglieder haben.

Die bisherige Idee ist Basisdaten einer Gruppe in einem Dokument für Gruppen zu speichern. Die Gruppenmitlgieder aller Gruppen in einem anderen. Einladungen eines Gruppenmitglieds an andere zukünftige speichere ich in einem weiteren Dokument.

Momentan habe ich ein Concurrencyproblem, für das ich keine Lösung habe. Ein Mitglied lädt eine Person ein, die nimmt an. Dabei speichere ich in zwei verschiedene Dokumente und es kann passieren, das die maximale Anzahl an Gruppenmitgliedern überschirtten werden kann.

Vielleicht hat jemand einen Tip zum Datenmodell und zu dem Concurrency-Problem?

Fastjack

Warum nicht einfach die Einladungen sowie, die Mitglieder der Gruppe mit den Basisdaten im selben Dokument festhalten?

JSON:

{ type:group, name:Bla, 
  members:[{id:1},{id:2},{id:3}],
  invitation:[{invitator:1, invitated:4}]}

Das sollte doch das Concurrencyproblem lösen.

Und auf die Daten kann man per Map-Reduce gut zugreifen.

Alternativ könntest du es so machen, dass sich genau eine Klasse um die Verwaltung dieser Datei(en) kümmert. Innerhalb dieser Klasse kannst du dann per Synchronisation sicherstellen, dass immer nur eine Änderung zur Zeit erfolgt.

Muss man nicht, als User, eine Datenbanl durchgehend laufen lassen, sowas wie MySQL oder so? Weil ich habe Sonar, und damit das meinen Quellcode überprüft, muss MySQL laufen. Daher stellt sich bei mir diese Frage, Bei Android interessiert mich das ja eigentlich als ntwickler nicht, da ich ja immer Zugriff auf die Daten habe.

Wahrscheinlich wird jemand eine neue Beratung in eine Matratze ab Modellierung jeder zu geben.

Es ist wirklich über die Festplatte mit den Endbenutzern, die einfach durch zusätzliche Team-Benutzer mit Organisationen eingeladen werden können, verbunden ist, während eine Organisation könnte ein Maximum von X-Benutzer haben.