I think it might be useful to go with your first instincts, that a
book is a document, and then see how to best organize the information
you have about the book in support of some application, rather than
But, in the FRBR model, the "book" (FRBR's "Manifestation") is not the
"final" or "complete" document (CouchDB's "document"). Were I to
strictly map "the book is a document", the CouchDB document would be a
"Work" comprising *hundreds* of different Expressions and Manifestations
and Items, forever spidering out. Consider "The Hobbit" (a famous
thought-experiment for FRBR) - it'd be one mightily huge, single, JSON
document, comprising every edition of every book, every CD, every
Rankin-Bass iteration on TV, VHS, and DVD, the forthcoming 2011 movie,
the two video games made for it, etc., etc. The singular artistic
endeavor that is "The Hobbit" is a lot more than a single book - it's a
very complex stress test for any FRBR application.
http://www.frbr.org/2006/08/19
It would fit into CouchDB's model to have a JSON document this large? It
would grow ever larger if a user ever used the application too - every
user who owned a copy (an Item) of a "The Hobbit" Manifestation (a book,
a CD, a VHS, etc.) would add on an FRBR Item to the existing JSON
document, which itself may have numerous fields and tags and etc.
It would be easily safe to say that, for an FRBR mockup of "The Hobbit"
in a single JSON document, the JSON document would have thousands of
objects, and then an additional object for each user who ever owned it.
Is that "OK", whilst still allowing for quick lookups against it, and
allowing me to load a particular "The Hobbit" Manifestation (or the
entire Work, as necessary), without loading, say, all the Item objects?
Ignoring FRBR entirely, I suppose the question is: how large can
a CouchDB JSON document get before it stops being useful?
--
Morbus Iff ( i subscribe to the theory of intellectual osmosis )
Technical: http://www.oreillynet.com/pub/au/779
Enjoy: http://www.disobey.com/ and http://www.videounderbelly.com/
aim: akaMorbus / skype: morbusiff / icq: 2927491 / jabber.org: morbus