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 <[email protected]>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…
