Unique identifiers

Regardless of how you configure (or change) the path alias configuration for a particular node, you can always get to it if you know its node ID. Node ID numbers (nid) are assigned in order as nodes are created: the first node you create on the site has the ID 1, the second is 2, etc. Node IDs are unique within your site, and there is no way to change the node ID for a given node, short of deleting and recreating it. It may be tempting to try to treat node IDs as reliable, persistent identifiers. For example, one website that had a node for each of the physical objects in the organization’s archive used a label maker to adhere the corresponding Drupal node ID number to each object. However, this can quickly become problematic if you ever need to rebuild your site, or upgrade it using a technique that involves exporting and re-importing all content, which would change the node ID.

There is currently no good solution for creating visible unique identifiers for nodes in Drupal. There is a module, Universally Unique Identifier (UUID), which can be used in conjunction with modules like Features (see chapter 15) and Node Export to maintain the integrity of pointers between entities (e.g. from one node to another using a node reference field, or from a node to a taxonomy term using a term reference field) when they’re moved from one site to another. But the UUID module does its work behind the scenes, and isn’t meant to be displayed-- on the website, or on physical objects in the real world.

There is a Drupal group, “Science on Drupal”, that has been doing some work on developing a module that could generate DOIs and/or ARKs for individual Drupal nodes through integration with a service such as EZID. Leveraging existing standards and systems such as DOIs and the EZID service is likely going to be the best approach to develop this functionality.