[development] Unique/Random IDs and drupal
Victor Kane
victorkane at gmail.com
Mon Aug 11 14:45:36 UTC 2008
right! but mustn't be database generated, must be generated on
business logic level to avoid dependence on any given persistence
On Mon, Aug 11, 2008 at 9:49 AM, Robert Douglass <rob at robshouse.net> wrote:
> On Aug 11, 2008, at 2:38 PM, Earnie Boyd wrote:
>
>> Quoting Robert Douglass <rob at robshouse.net>:
>>
>>> I could export my blog posts from one site and import them into another
>>> site and keep the id.
>>
>> You could "keep the id" but IMO you shouldn't. You don't know if there
>> may be an existing id in the receiving DB. The ID is unique to each DB and
>> existing values should not be merged from one DB into another. That said,
>> the only correct method for merging data from one DB into another is to use
>> the API for the receiving DB so that the foreign key constraints match
>> appropriately (even for those DB engines not supporting foreign key
>> constraints). In Drupal's case the nid should be removed so that a new nid
>> is created or the uid should be removed so that a new uid is created. An
>> import/export API should take into consideration this fact and allow for the
>> removal of the ID columns on import or export.
>>
>> Earnie -- http://for-my-kids.com/
>> -- http://give-me-an-offer.com/
>>
>
>
> No, this is the entire point of Ethan's suggestion. The id's *are* globally
> (meaning universe-wide) unique. Note also that there is no inherent
> suggestion that one *wouldn't* use Drupal APIs. On the contrary, this
> discussion is about extending Drupal APIs (at least taking the first
> incremental step - moving to 64 bit integers). I really don't think you can
> satisfy the use cases discussed thus far easily with existing Drupal APIs.
>
> http://en.wikipedia.org/wiki/UUID
>
> "A Universally Unique Identifier (UUID) is an identifier standard used in
> software construction, standardized by the Open Software Foundation (OSF) as
> part of the Distributed Computing Environment (DCE). The intent of UUIDs is
> to enable distributed systems to uniquely identify information without
> significant central coordination. Thus, anyone can create a UUID and use it
> to identify something with reasonable confidence that the identifier will
> never be unintentionally used by anyone for anything else. Information
> labeled with UUIDs can therefore be later combined into a single database
> without needing to resolve name conflicts. The most widespread use of this
> standard is in Microsoft's Globally Unique Identifiers (GUIDs). Other
> significant users include Linux's ext2/ext3 filesystem, LUKS encrypted
> partitions, GNOME, KDE, and Mac OS X, all of which use implementations
> derived from the uuid library found in the e2fsprogs package."
>
More information about the development
mailing list