I am accustomed to the BigTable nosql db in the search engines AppEngine. Now I am learning couchDB using its idea of "document". I am unsure the 2 things are identical. In GAE large table you model your computer data just as you'd do on the relational db, apart that you will find only minimal transaction (functional simply to link particulars for an entity), no joins with no constrain around the fields (every row might have different fields).

Is true for couchDB too? could they be different ways to map normal organizations? For instance for any bug tracker how does one map Bug, User (who opened up the bug), Developer (who should really fixed it), BugType and BugStatus?

It's been some time since i have used GAE. So far as I recall you will find models and all sorts of objects of the identical model have a similar characteristics with various values. You'll be able to query the database having a query language much like SQL.

In CouchDB all you store there's a document and it's not necessary to pressure your documents into any schema. You query your documents by writing JavaScript functions not by writing SQL and joining tables. Rather you need to denormalize your computer data whenever possible.

I'd propose the next example document for any bug:

condition" : "new",

  "user" : title" : "user",

      "email" : "user@example.com",

  "developer" : title" : "superdev",

      "email" : "dev@example.com",

      "id" : "dev-123",

  "title" : "this is actually the bug title",

  "description" : "this is actually the bug description",

  "comments" : [




This blogpost will let you http://world wide web.couch.io/moving-to-couchdb

Best blog I discovered about modelling data in couchdb:

http://world wide web.cmlenz.internet/archives/2007/10/couchdb-joins