FAQ

[CouchDB-user] Suggestions required on app design

Dean Landolt
Mar 4, 2009 at 6:23 pm

On Wed, Mar 4, 2009 at 12:34 PM, Ramkrishna Kulkarni wrote:

Hello All,

Please bear with me, I'm new. I have been playing with CouchDB
recently and I find it kool! I would appreciate if someone from the
list could answer few of my questions below.

Consider I have a database-per-user design and I want to be RESTful.

a) How do I list all users by just typing a URL like http://server/users/?
b) Is there a way to specify startkey and endkey while listing such
databases? For example: I want to list only databases of users
starting with "a"

As it stands now you can use a proxy to rewrite urls to specifics, including
startkey and endkey as querystring args.

There's been some conversation on implementing routing inside the design doc
itself to make it easy (and replicatible) to have pretty urls...

But I'd still argue you'll need some sort of rewriting at the proxy level to
allow http://server/users -- if there's routing in the design doc, it should
probably be limited to http://server/<db>/<designdoc>/... to prevent
malicious (or accidental) httpd hijacking.

I know this is possible if there is sinlge "users" database with a
document for each user with _id=user-id.

Further, consider I have database-per-blog as well (assume this is a
simple blog application).
a) How do I create something like view (views I believe cannot be run
across databases) so that whenever a user resource is requested, I
return all blogs written by that user in addition to user information?
Basically links to all blog resources.

Probably this logic should be in the application. Fire two queries,
one to get user data and another to get blogs?

If you plan on splitting these across dbs, it sounds like you'll need an
administrative db to keep the users/blogs metadata. You could map over that
with ease.

The reason I'm trying to do this is because I'm bit scared about
having data in just couple of huge files. I would rather have data
spread out in several smaller files.

What's the worry?

Probably there are better ways to do this. Please let me know.

Thanks,
Ram
reply

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 3 of 5 | next ›