On 16 Jul 2008, at 07:02, Troy Kruthoff wrote:
Surprise :) There is no established type declarations in couchdb.
Once you get used to it, it is very liberating to work outside the
confines of an established type system. Big hint, the separate db
approach is not where you want to go. But you are on track with
using a 'type' attribute. I have also used views for more simpler
schemas, such as a simple contact database might have views for
'contacts/people' and 'contacts/companies' based on something like
"if (doc.company_name) //I'm a company" and "if (doc.first_name ||
doc.last_name) //I'm a person"
Thanks Troy, this is all good advice.
I'll add one more bit. CouchDB will have insert / update validation.
That will be just another JavaScript function that allows or declines
the insertion or change of a document based on criteria you put into
that function. This will give you some schema enforcement
capabilities. But even with that, documents are meant to be ad-hoc in
structure.
Cheers
Jan
--
On Jul 15, 2008, at 9:39 PM, Avi Flax wrote:
Hi, I'm new to couchdb, and I apologize if this is a FAQ, but I
can't seem
to find what I'm looking for anywhere.
I'm trying to understand the intended usage pattern for
applications using
couchdb as a data store. Specifically, I'm wondering what the
intended
approach to differentiating between different types of documents are.
For example, if my application has two entities: Cars and Trucks,
in a RDBMS
I'd create two different tables; one to store Cards and one to
store Trucks.
If I wanted cars I'd run a query on the "cars" table; if I wanted
trucks I'd
run a query on the "trucks" table.
I'm a little unclear on how to achieve a similar use case with
couchdb. I
guess I could create separate databases for Cars and Trucks, but that
doesn't seem right; I'm dubious that the designers intended
databases to be
used like tables. In searching the mailing list I saw that some
documents
had a field named "type". That seems like a good way to differentiate
document types; my hesitation there is that it just seems very ad-
hoc; I'd
be surprised if there's no more firmly established method for
distinguishing
between document types.
Apologize if this doesn't make much sense, I'm up later than I
should be.
Thanks!
--
Avi Flax » Lead Technologist » Partner » Arc90 » http://arc90.com