On Apr 14, 2009, at 5:56 AM, Jason Smith wrote:

That's cool.  Some thoughts:

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

Thanks!

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.

Good idea, I sprinkled it around a little where appropriate.

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.

Do you think the document should touch on that? In these simple examples, there's nothing to transact :-/. Maybe there should be a recipe book for transaction avoidance? (like using a running sum on bank account transfers)

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.

I tried to make it clearer that big documents mean slow transfer times on writes, feel free to amend if you see a better way to express it.

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

Definitely, it's the easiest to use...

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"!

Thanks :-)

Wout.

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