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