Repository Identifiers
The repository engine uses identifiers to distinguish objects and object versions from each other.
There is an object identifier for every object in a repository database. When you add an object to a repository (programmatically or by installing a model), the object identifier is created as part of the object definition. This identifier remains with the object until you delete the object from a repository. When you program a repository object, you can use the object identifier to retrieve the object you want.
The repository engine maintains two sets of identifiers: object identifiers (ObjID) and internal identifiers (IntID). One set, the object identifiers, is public. The second set, the internal identifiers, is used by the repository engine. A repository SQL table maps the two sets, and the repository engine maintains the correspondence.
Functionally, object identifiers and internal identifiers are similar. However, the values of internal identifiers are smaller and more efficient for the engine to handle and the database to store. When the repository engine receives a call for an object identifier, it converts the internal identifier into an object identifier that your program can use.
In some cases it is desirable to use the internal identifiers. For example, if you want to query the database directly, you can use the smaller internal identifier that the repository engine uses to store object data. However, when you program with repository objects, you should always use the longer object identifier.
The following table lists topics that provide more information about repository identifiers.
Topic | Description |
---|---|
Object Identifiers and Internal Identifiers | Compares object identifiers and internal identifiers, and provides details about their composition. |
Object-Version Identifiers and Internal Object-Version Identifiers | Describes the portion of a repository identifier that stores version information, and compares how version identifiers are represented in object identifiers and internal identifiers. |
How Repository Identifiers and Stored and Instantiated | Details how internal identifiers are stored and how object identifiers are created from internal identifiers. |
Repository Identifier Data Structures | Explains the data structure of repository identifiers. Knowing about internal identifier data structures can help you build a query. |
Assigning Object Identifiers | Explains how to assign object identifiers. |