Сурогатні ключі (як правило, цілі числа) мають додаткову цінність, щоб зробити ваші відносини таблиці швидшими та економічнішими щодо швидкості зберігання та оновлення (ще краще, іноземні ключі не потрібно оновлювати при використанні сурогатних ключів на відміну від полів бізнес-ключів, які змінюються час від часу).
Первинний ключ таблиці повинен використовуватися для однозначної ідентифікації рядка, переважно для цілей з'єднання. Подумайте таблицю "Особи": імена можуть змінюватися, і вони не гарантуються унікальними.
Мислите компанії: ви щаслива компанія Merkin, яка працює з іншими компаніями в Merkia. Ви досить розумні, щоб не використовувати назву компанії в якості основного ключа, тому ви використовуєте унікальний ідентифікатор компанії Merkia в цілому 10 буквено-цифрових символів. Тоді Меркія змінює посвідчення компанії, оскільки вони думали, що це буде гарною ідеєю. Це нормально, ви використовуєте функцію каскадного оновлення db-двигуна для змін, які не повинні вас залучати в першу чергу. Згодом ваш бізнес розширюється, і тепер ви працюєте з компанією у Фредонії. Ідентифікатор компанії Freedonian має до 16 символів. Вам потрібно збільшити первинний ключ ідентифікатора компанії (також поля іноземних ключів у Замовленнях, Випусках, MoneyTransfers тощо), додавши поле "Країна" у первинний ключ (також у закордонних ключах). Ой! Громадянська війна у Фредонії, з розколом на три країни. Ім'я країни вашого партнера слід змінити на нове; каскадні оновлення на допомогу. До речі, який ваш основний ключ? (Країна, CompanyID) або (CompanyID, країна)? Останній допомагає приєднатися, перший уникає іншого індексу (або, можливо, багатьох, якщо ви також хочете, щоб ваші замовлення були згруповані по країні).
Все це не є доказом, але свідченням того, що сурогатний ключ для однозначної ідентифікації рядка для всіх цілей використання, включаючи операції приєднання, є кращим для бізнес-ключа.