Why Do We Need Technical IDs in the First Place?
Any properly designed relational database table owns a Primary Key (PK) allowing you to uniquely and stably identify each record. Even if the primary key can be composite (built of several columns), it is a widespread good practice to dedicate a special column (often named id
or id_<table name>
) to this end. This special column is used to technically identify records and can be used as foreign keys in relations.
NOTE: Do not confuse technical (also named "surrogate") keys with function keys. The most important tables (so-called entities in domain-driven design) may contain an alternate human-readable ID column (like the customer ID "G2F6D
"). In this article, we will focus only on technical PKs. They should only be processed and readable by machines, not humans.