Klucze zastępcze (zwykle liczby całkowite) mają tę wartość dodaną, że sprawiają, że relacje między tabelami są szybsze i bardziej ekonomiczne w przechowywaniu i aktualizowaniu (jeszcze lepiej, klucze obce nie muszą być aktualizowane podczas korzystania z kluczy zastępczych, w przeciwieństwie do pól kluczy biznesowych, to się zmienia od czasu do czasu).
Klucz podstawowy tabeli powinien być używany do jednoznacznej identyfikacji wiersza, głównie do celów łączenia. Pomyśl o tabeli Osoby: imiona mogą się zmieniać i nie gwarantuje się ich niepowtarzalności.
Think Companies: jesteś szczęśliwą firmą Merkin, prowadzącą interesy z innymi firmami w Merkia. Jesteś wystarczająco sprytny, aby nie używać nazwy firmy jako klucza głównego, więc używasz unikalnego identyfikatora firmy Merkia, składającego się w całości z 10 znaków alfanumerycznych. Następnie Merkia zmienia identyfikatory firm, ponieważ uznała, że to dobry pomysł. W porządku, używasz funkcji kaskadowych aktualizacji silnika db, aby zmienić, który nie powinien Cię w ogóle angażować. Później Twoja firma się rozwija, a teraz pracujesz w firmie we Freedonii. Freedoński identyfikator firmy może mieć maksymalnie 16 znaków. Musisz powiększyć klucz podstawowy identyfikatora firmy (także pola kluczy obcych w zamówieniach, problemach, przelewach itp.), Dodając pole Kraj w kluczu podstawowym (również w kluczach obcych). Auć! Wojna domowa we Freedonii, to są podzielone na trzy kraje. Nazwę kraju Twojego współpracownika należy zmienić na nową; kaskadowe aktualizacje na ratunek. BTW, jaki jest twój klucz podstawowy? (Kraj, CompanyID) czy (CompanyID, Country)? Ta ostatnia pomaga w dołączaniu, ta pierwsza pozwala uniknąć innego indeksu (a może wielu, jeśli chcesz, aby Twoje zamówienia były również pogrupowane według krajów).
Wszystko to nie jest dowodem, ale wskazaniem, że klucz zastępczy do jednoznacznej identyfikacji wiersza dla wszystkich zastosowań, w tym operacji łączenia, jest lepszy niż klucz biznesowy.