An identifier selects an individual object of an entity. No two objects are allowed to have the same identifying values.
Typically, identifiers are used where some interface exists. For example, efficiently finding a specific object referenced in an incoming event.
Each identifier is made up of one of more attributes. They must be able to select only one unique object from all the objects belonging to an entity. An entity may have several identifiers, each of which must use a different combination of attributes.
Most attributes that go to form an identifier will belong to the entity and these are called OwnKey attributes. However, some attributes will belong other entities and these are referred to as ForeignKey attributes and must be accessed through a relationship.
Access to foreign key attributes in the form of identifiers in other entities is always through an unconditional and single (-->) relationship which is established through use of the Relate statement.
The Identifier statements are used with the following IdentifierSelection statements:
An identifier is declared by the Identifier statements and actioned by the IdentifierSelection statements.
Number : Id_Number
Text : First_Name
Text : Last_Name
Number : Height
The Identifier statement names the identifier and introduces the OwnKey and ForeignKey statements.
Text : Name
The OwnKey statement specifies one or more attributes that form part or the whole of the identifier.
Text : Name
Belongs_to --> Dog_Owner
Belongs_to : Dog_Owner : Dog_Owner_Identifer
The ForeignKey statement specifies one or more identifiers that exist in one or more related entities. The identifier may form part or whole of the identifer.
In the ForeignKey data subregion, the relationship is specified, then the entity and finally the name of the identifier at the related entity.