couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Markus Jelsma <mar...@buyways.nl>
Subject Re: Validate uniqueness field
Date Tue, 30 Mar 2010 15:15:15 GMT
Perhaps i sent the e-mail a bit too fast because issues would surface if couch 
allows complex ID's.

For example, would the entire value of the key be considered to be unique, or 
would the individual elements? And what about the order of the values inside 
the key?


["user_1", "email_1"]  vs.   ["email_1", "user_1"]

or

["user_1", "email_2"]  vs.   ["email_2", "user_1"]


The problem is that this the answer to this question, i believe,  depends on 
your usecase. Also, the current source might not that easily be patched for 
such a feature, if it would be a good idea at all to support such a feature.




On Tuesday 30 March 2010 17:05:15 Markus Jelsma wrote:
> Document ID's _must_ be a simple string. It would be nice though, to have
> complex ID's just as we can have complex keys for our views.
> 
> On Tuesday 30 March 2010 16:49:06 Andrew Melo wrote:
> > On Tue, Mar 30, 2010 at 9:44 AM, faust 1111 <faust451@gmail.com> wrote:
> > > Yes its only one way.
> > > Why couch don't implement uniqueness in simple way?
> >
> > It does implement it in a simple way. You get a unique field. Couch
> > makes sure that only one document has that field at a same time.
> >
> > Actually, I was just thinking, and someone else can correct me if I'm
> > wrong, but you may be able to do ['email','username'] as the _id.
> >
> > -Melo
> >
> > > 2010/3/30 Andrew Melo <andrew.melo@gmail.com>:
> > >> On Tue, Mar 30, 2010 at 9:13 AM, faust 1111 <faust451@gmail.com>
wrote:
> > >>> It's very frightful for me implement uniqueness in this way
> > >>> create doc for each uniq field and keep it in actual state when i
> > >>> update docs.
> > >>>
> > >>> may be better check uniqueness only in application layer?
> > >>> now i don't think about distribute.
> > >>
> > >> If you don't do it the way Jan suggested, you may end up with a race
> > >> condition, even if you don't distribute the database (i.e. if two
> > >> people register (nearly) simultaneously with the same username/email).
> > >> You would then have to support backing out/correcting any errors
> > >> manually in your application level code. If you're comfortable with
> > >> that, feel free, but Jan's way is much cleaner, in the long run.
> > >>
> > >> best,
> > >> Andrew
> > >>
> > >>> 2010/3/28 Jan Lehnardt <jan@apache.org>:
> > >>>> You need to have two documents with a unique ID each.
> > >>>>
> > >>>> Cheers
> > >>>> Jan
> > >>>> --
> > >>>>
> > >>>> On 27 Mar 2010, at 17:12, faust 1111 wrote:
> > >>>>> but what if i have two unique fields
> > >>>>>  login
> > >>>>>  email
> > >>>>>
> > >>>>> 2010/3/28 J Chris Anderson <jchris@gmail.com>:
> > >>>>>> On Mar 27, 2010, at 4:56 PM, faust 1111 wrote:
> > >>>>>>> Hi
> > >>>>>>>
> > >>>>>>> In what way i cat implement validation of uniqueness?
> > >>>>>>> User
> > >>>>>>>  email: unique
> > >>>>>>>  login:  unique
> > >>>>>>
> > >>>>>> You can only have 1 unique field per database. you implement
it by
> > >>>>>> using it as a docid, like
> > >>>>>>
> > >>>>>> {
> > >>>>>> "_id" : "user:unique",
> > >>>>>>   ...
> > >>>>>> }
> > >>>>>>
> > >>>>>> Chris
> > >>
> > >> --
> > >> --
> > >> Andrew Melo
> 
> Markus Jelsma - Technisch Architect - Buyways BV
> http://www.linkedin.com/in/markus17
> 050-8536620 / 06-50258350
> 

Markus Jelsma - Technisch Architect - Buyways BV
http://www.linkedin.com/in/markus17
050-8536620 / 06-50258350


Mime
View raw message