incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Smith <>
Subject Re: Entity Relationships in CouchDB
Date Tue, 14 Apr 2009 03:56:19 GMT
That's cool.  Some thoughts:

1. I changed the first sentence a little to better comply with the 
document's CC-A license.

2. Do you think the word "Joins" should be added somewhere to get into 
Google?  IMO this document is a better way to learn than the slightly 
more dense ViewCollation page.

3. Couch is different from App Engine WRT (at least) transactions and 
indexing.  Most people can use App Engine somewhat quickly because there 
is still a facility for transactions involving several objects.  (It's 
not a RDBMs but you can still do it.)  Whereas with CouchDB, the unit of 
atomicity is the document.  Speaking of documents, I'm not sure there is 
as big of a performance penalty for large Couch documents vs. large App 
Engine models.  App Engine indexes every possible combination of 
attributes that you might ever query against, but in CouchDB, you write 
your own indexes which, stored separately from the main data.  So you 
could have a large complex document (for atomic modification), but 
mostly read its data via various views which cherry-pick the important 

In short, I'm not sure Couch has the same performance characteristics as 
App Engine for data.  Specifically, I would be tempted to use the "list 
of keys" method for as long as possible since you can get to your data 
in one view request.  (But I'm no expert.)

Still, for the large portion of applications which don't have major 
performance requirements, this is a great document!  I like how it 
teaches how to do "joins" without using scary words like "view 
collation" and "map/reduce"!

Wout Mertens wrote:
> Hi everyone,
> I made a stab at translating a Google document about modeling entity 
> relationships into CouchDB lingo.
> Comments welcome.
> Wout.

Jason Smith
Proven Corporation
Bangkok, Thailand

View raw message