On Oct 12, 2008, at 1:28 PM, Lance Pollard wrote:

Maybe it could be such that:

-MySQL handles entities that have 1) static properties (columns of tables are pretty much constant, like a "user_account" or "contact_address" are…),
and 2) static (username) or dynamic (chunk of text) values.
-CouchDB handles things that have 1) dynamic properties (columns in
relational database become "keys" or whatever in Couch, and these keys
aren't fixed but can change from resource to resource), and 2) dynamic
values only. And 3) Couch would handle all uploaded/attachment data because many documents, even if they are the same type (image, video, word…), might
have different properties depending on the situation.

I've just been trying to think how you could manage 10s or 100s of potential "entities/tables" in a database and wanted to pass it your way to get your
input.

If CouchDB handled things that only had "dynamic" properties, then an
"image" entity for example could have [title, caption, size,
attachment_fu.stuff] in one case and [title, tags] in another, or whatever; there is no need to have a single "Images" table with a specified set of properties (rows). Image properties or rows can instead be dynamic. But
what entities do we choose to be dynamic?

So instead of having single inheritance in relational databases and huge
table with tons of null columns, you could have, basically, a
table-per-asset, or a document--that's what Couch is. But what kind of structure do you apply to Couch documents? And what entity should be placed
in Couch vs. MySQL?  Maybe all file-uploads can go to Couch and all
structured-mostly-unchanging entities, like user accounts, can go to MySQL?



slightly OT, but it's not really true that you can't handle dynamic properties with a RDBMS. you just have to normalize even your columns are child records. i have a plugin for AR which does just that, read this to see what mean

  
http://drawohara.com/post/53975615/rails-dynamic-properties-for-activerecord-objects

the win for couchdb, IMHO, really comes from storing object *graphs* as one entity. that and the fact that it enables, for really the first time, *true* MVC arch. that is to say javascript (the view) can see the model. most people ignore this link in the MVC triangle and it's why the pattern can feel so forced at times. in MVC the views is *supposed* to be able to see the model. with couch db it can, and easily at that.

cheers.

a @ http://codeforpeople.com/
--
we can deny everything, except that we have the possibility of being better. simply reflect on that.
h.h. the 14th dalai lama



Reply via email to