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@robshouse.net> wrote:
On Aug 11, 2008, at 2:38 PM, Earnie Boyd wrote:
Quoting Robert Douglass <rob@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."