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 parts.

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.

http://wiki.apache.org/couchdb/EntityRelationship

Comments welcome.

Wout.


--
Jason Smith
Proven Corporation
Bangkok, Thailand
http://www.proven-corporation.com

Reply via email to