Суррогатные ключи имеют определенные преимущества:
- Они защищают данные, поэтому встроенные ключи не нужно видеть везде.
- Они позволяют заменять суррогатный ключ .
- Суррогатными ключами обычно являются числа, которые более эффективны, чем составные ключи или строки.
При всем этом естественные ключи иногда могут быть весьма полезны. Например, я работаю с довольно сложными цепочками систем. Введение новых ключей в каждую систему только начинает сбивать с толку - например, это код продукта.
Несмотря на мой уклон к суррогатным ключам, в таких случаях могут пригодиться естественные ключи. Важно, чтобы такие ключи были первичными ключами, чтобы они действительно не могли изменять значения и чтобы они были - предпочтительно - числами (которые более эффективны для отношений с внешним ключом).