Tables in a relational database must have a primary key. When designing a database, the primary key can often be chosen from intrinsic data. For example, a person’s social security number or the hardware address of a network interface card are unique identifiers that can be good choices for a repository ID.

Sometimes, there is no natural ID and you must generate one to serve as the primary key. Typically an integer counter is used for this. The major relational database management system vendors have facilities to automatically generate IDs internally. These IDs (called sequences in some systems) differ from each other in how they are generated and retrieved. Database-generated sequences are not supported as repository IDs in the Oracle ATG Web Commerce platform. Instead, use an ID generated by the IdGenerator, as described above and in the Core Dynamo Services chapter of the ATG Platform Programming Guide.