Subject | RE: [firebird-support] Re: Primary Keys - [was] Database File Size |
---|---|
Author | Alan McDonald |
Post date | 2004-05-25T12:46:34Z |
> > The GUID is attractive to me in this case because, like theNot sure about this.. we had discussions on this a little while ago. This
> > integer keys, it eliminates the issue of control of the environment
> > and business structures from my database schema. Unlike the integer
> > keys, it does not require any centralized coordination or alteration
> > of records in transit.
>
> Be careful in your assumptions that GUIDs will always be unique,
> across computers. The generation of GUIDs is based on the MAC address
> of a network card. If the computer doesn't have a network card(i.e.:
> standalone computer with dial-up internet access, and no network card
> installed), then the GUIDs will be guaranteed to be unique locally on
> that computer, but NOT with other computers. And, given this scenario,
> you might end up having duplicate GUIDs in your PKs. So, you still
> have to make conflict resolution when transferring between databases.
> Unless, you can be assured at 100% that that scenario will never
> happen.
>
> --
> Best regards,
> Daniel Rail
link
http://hegel.ittc.ukans.edu/topics/internet/internet-drafts/draft-l/draft-le
ach-uuids-guids-01.txt
includes the following:
4. Node IDs when no IEEE 802 network card is available
If a system wants to generate UUIDs but has no IEE 802 compliant
network card or other source of IEEE 802 addresses, then this section
describes how to generate one.
The ideal solution is to obtain a 47 bit cryptographic quality random
number, and use it as the low 47 bits of the node ID, with the most
significant bit of the first octet of the node ID set to 1. This bit
is the unicast/multicast bit, which will never be set in IEEE 802
addresses obtained from network cards; hence, there can never be a
conflict between UUIDs generated by machines with and without network
cards.
So NIC or no NIC - UUIDs are supposed to be unique
Alan