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