incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Hahn <>
Subject Re: Rewrite /user/bob to user:bob
Date Fri, 19 Aug 2011 00:18:14 GMT
I personally think using anything other than UUIDs for doc ids is a mistake.
 I have found times when I want to change the architecture and having fixed
doc ids made it impossible.

On Thu, Aug 18, 2011 at 11:47 AM, Simon Leblanc <>wrote:

> Hello,
> I'm trying to write a couchapp with multiple users. Two users can't have
> the same name, since I want to access user bob's profile through /user/bob.
> Similarly, I store other documents (let's call them stuffs) with unique ids
> that I would like to access through /stuff/somestuff.
> A user can have the same name as a stuff, and vice versa. That's why I
> can't use bob or somestuff as _id (otherwise I couldn't have a stuff named
> bob or a user named somestuff).
> I see 3 options:
> use different databases for users and stuffs, but that means two design
> documents and it kind of defeats the purpose of couchapps
> use uuids and deal with names in a custom manner. Sounds difficult. I would
> really prefer the third option:
> use a naming convention for ids, like user:bob and stuff:somestuff.
> My favorite choice so far is the third option. The colon can be replaced by
> any character, like dash, underscore, comma, @ or even nothing if this can
> help. The prefix can also be a postfix.
> I initially tried with a forward slash which was perfect until I realized
> it was not really supported and it caused problems with update functions
> (see COUCHDB-1229).
> Is it possible to rewrite /user/bob to, for instance,
> /_show/profile/user:bob or /_show/profile/user_bob ?
> I tried {"from": "user/*", "to": "_show/profile/user:bob"} and variants
> with no success.
> If it is not possible, what would be the best alternative?
> Thanks a lot for your help,
> Simon
> PS: For the sake of learning, I'm trying to write a pure couchapp without
> client-side javascript…

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message