It depends what are the goals of the usage. And who/what is doing the user-dispatch (access/rights). * if u need all the books of all users, u should somehow get them all together in one db (does not mean The only db). * if u need each user to access (and replicate) only hir stuff, then keep it in separate db. Or keep them all together and make the access-control on top of it, outside couchdb (but no easy replication). * u can keep same thing on multiple places. via internal replications, auto or manual. * replications are easy in couchdb. relations are not that easy.
For your case u can put everything in one db (or 2, or 3, depending on your wish, but not data-needs), thus couchdb being just a server-only data-storage, and then make all user-access related stuff/filtering on top. U can have sort-a relations by putting both ends of relation in single view, then ordering/grouping them. If u later need per-user replication (e.g. move to mobile, so users can have their stuff on their devices), u can organise extra internal per-user db that is replicating only that-user stuff from/to main db. And then replicate that one to external world. But i guess this is too far. ciao svilen On Mon, 16 Sep 2013 11:30:13 +0200 Christian Grobmeier <[email protected]> wrote: > Hi all, > > for more than a decade I used relational databases. For a tiny > project I would like to try NoSQL and CouchDB and see for myself why > people are so fond of it. For me it is not much about tons of data. I > am using AngularJS and PHP and thought a schemaless database would > fit nicely. > > While I think I found the approach for most of my app, I am unsure > about one specific thing. I would like to enable my users to register > and add a book to their personal collection. > > My approach would be to create a database with books first. Like: > > {_id: 1, functional:"my-book", title:"my title", ... } > > Second I would like to create a database with my users, like: > > {_id: 20, email : "[email protected]", pass : "hashed", salt : "salt", > books : [ 1, 2, 3, 4 ...] } > > When a user logs in, I would like to search for him by email and check > user credentials. When it succeeds I would look up all the books in > his collection. > > On the net somebody wrote I should create a database per user. But > this seems completely wrong to me. Right? > > I am a little concerned because I am referencing books from my user > object. Is this the right approach? > > Or do I miss something? > > Glad over all links, points, hints and so on. > > Thanks! > Christian
