Faustregel, mit der du fast immer richtig liegst: Im Zweifel Surrogatschlüssel (also eine künstliche, technische ID). Der Grund ist Stabilität – ein Primärschlüssel sollte sich nie ändern und immer eindeutig sein.
Natürliche Schlüssel klingen elegant, haben aber Tücken:
- Sie können sich ändern (eine Artikelnummer wird umgestellt, ein Nutzername geändert) – und dann musst du die Änderung durch alle Fremdschlüssel-Tabellen schleppen.
- Sie sind manchmal doch nicht so eindeutig, wie man denkt.
- Zusammengesetzte natürliche Schlüssel machen Joins und Fremdschlüssel unhandlich.
Eine technische ID ist dagegen bedeutungslos, unveränderlich und schmal – ideal als Primär- und Fremdschlüssel.