IMO you should use a OrderdConfirmationNumberGenerator for the need of your
business maintaining the PK as a no-business-meaning
POID.OrderdConfirmationNumberGenerator may
be a GUID, a progressive number (generated from some table using pessimistic
lock), a combination of various data (timestamp, orderdnumber, customer
e-mail), a crypt of combination of various data... and so on.

2009/4/15 Jean-Francois Cantin <jfcan...@gmail.com>

> Greg,
>
> So in your scenario, do you keep the PK as GUID and use another column for
> the "application Id" checkout?
>
> Jean-François
>
>
> On Wed, Apr 15, 2009 at 11:18 AM, Greg Young <gregoryyou...@gmail.com>wrote:
>
>>
>> Assuming this is all so you can be occasionally connected and still
>> generate an id
>>
>> do id checkouts ... say each occasionally connected client has 1000
>> ids and when they run out they check out new ones ...
>>
>> use things with enough randomness ... using letters helps with
>> representing these ... you can fit a random 80 bit number into a much
>> smaller character field (numbers/characters). Your chance of collision
>> at 1/2^80 is small enough for most systems ...
>>
>> use something similar to nhibernate's hilo generator.
>>
>> Greg
>>
>> On Wed, Apr 15, 2009 at 1:12 PM, Caio Kinzel Filho <cai...@gmail.com>
>> wrote:
>> >
>> > I agree with you on "generally they receive an id when they reach a
>> > central system",
>> >
>> > but my scenario is a little bit different:
>> > The "user" actually is a company operator, placing orders received by
>> > phone for a customer.
>> > The customer must receive an order id, for tracking purposes, etc
>> > The order is placed but its state is not yet "Confirmed" ( _that_ will
>> > happen when the order is processed by the central system)
>> >
>> >
>> > On Wed, Apr 15, 2009 at 2:02 PM, Greg Young <gregoryyou...@gmail.com>
>> wrote:
>> >>
>> >> Thsoe types of numbers are not generally created assigned in an
>> >> occasionally connected system ... maybe I am misunderstanding you ...
>> >> generally they receive an id when they reach a central system.
>> >>
>> >> On Wed, Apr 15, 2009 at 1:00 PM, Caio Kinzel Filho <cai...@gmail.com>
>> wrote:
>> >>>
>> >>> One scenario:
>> >>> A user post an order, and receives as a confirmation, an order number
>> >>> (which must be unique and so, it's my primary key).
>> >>> It would be akward to see something like:
>> >>>
>> >>> "Your order is:  3F2504E0-4F89-11D3-9A0C-0305E82C3301"
>> >>>
>> >>>
>> >>> On Wed, Apr 15, 2009 at 1:56 PM, Greg Young <gregoryyou...@gmail.com>
>> wrote:
>> >>>>
>> >>>> Why do you want human readable keys?
>> >>>>
>> >>>> On Wed, Apr 15, 2009 at 12:53 PM, caiokf <cai...@gmail.com> wrote:
>> >>>>>
>> >>>>> Hi,
>> >>>>>
>> >>>>> Which approach do you guys suggest to handle Primary Keys in an
>> >>>>> occasionally connected system?
>> >>>>>
>> >>>>> In my understanding, the options are:
>> >>>>>
>> >>>>> - GUIDs/UUIDs : which present a non-human readable key, which I want
>> >>>>> to avoid.
>> >>>>> - AppID, ID: difficult to mantain the AppID for all the clients, and
>> I
>> >>>>> think it kind of polute my domain.
>> >>>>> - Some sort of Primary Key Pool: how could I integrate that with
>> >>>>> NHibernate in a (most) transparent way (as possible)?
>> >>>>>
>> >>>>> If someone has some other suggestion or stories about that matter,
>> it
>> >>>>> would be very helpfull.
>> >>>>>
>> >>>>> Thanks,
>> >>>>> Caio
>> >>>>> >
>> >>>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> --
>> >>>> It is the mark of an educated mind to be able to entertain a thought
>> >>>> without accepting it.
>> >>>>
>> >>>> >
>> >>>>
>> >>>
>> >>> >
>> >>>
>> >>
>> >>
>> >>
>> >> --
>> >> It is the mark of an educated mind to be able to entertain a thought
>> >> without accepting it.
>> >>
>> >> >
>> >>
>> >
>> > >
>> >
>>
>>
>>
>> --
>> It is the mark of an educated mind to be able to entertain a thought
>> without accepting it.
>>
>>
>>
>
> >
>


-- 
Fabio Maulo

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to nhusers@googlegroups.com
To unsubscribe from this group, send email to 
nhusers+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to