Intelligent key
<database> A
relational database key which depends wholly on one or more other columns in the same table.
An intelligent key might be identified for implementation convenience, where there is no good
candidate key.
For example, if the three-letter initials of a group of people are known to be unique but only their full names are recorded, a three letter acronym for their names (e.g. John Doe Smith -> JDS) would be an intelligent key.
Intelligent keys are a
Bad Thing because it is hard to guarantee uniqueness, and if the value on which an intelligent key depends changes then the key must either stay the same, creating an inconsistency within the containing table, or change, requiring changes to all other tables in which it appears as a
foreign key.
The correct solution is to use a
surrogate key.