Ich modelliere ein Dokumentenerstellungssystem in CouchDB. Es automatisiert teilweise die Erstellung von Vorschlägen und Präsentationsdokumenten aus überschaubaren Dokumentfragmenten.
Ähnlich wie zum Beispiel Basecamp zerlegt es sich sehr einfach in eigenständige Daten pro 'Konto'. Jedes Konto hat mehrere Benutzer, Projekte, Dokumente, usw. Es sollte jedoch nichts zwischen Konten geteilt werden.
Ich sehe zwei Möglichkeiten, dies zu tun:
- eine couchdb-Datenbank pro Konto
- Verwendung eines Namensraums/einer Eigenschaft zur Identifizierung des Kontos
Es scheint mir, dass der erste Ansatz konzeptionell sinnvoll ist und möglicherweise Sicherheits- und Partitionierungsvorteile hat. Es scheint mir jedoch, dass er einige datenbankübergreifende Datenaabfragen einschränkt (was ich momentan nicht benötige, aber man weiß ja nie...) und das Aktualisieren von Ansichten potenziell eine Menge Schreibvorgänge erfordert.
Hat jemand, der mit dieser Art von Entscheidung Erfahrung hat, irgendwelche Ratschläge?