Le chiavi surrogate (in genere numeri interi) hanno il valore aggiunto di rendere più veloci le relazioni tra tabelle e una maggiore velocità di archiviazione e velocità di aggiornamento (ancora meglio, le chiavi esterne non devono essere aggiornate quando si utilizzano chiavi surrogate, a differenza dei campi chiave aziendale, che cambiano di tanto in tanto).
La chiave primaria di una tabella deve essere utilizzata per identificare in modo univoco la riga, principalmente per scopi di join. Pensa a una tabella Persone: i nomi possono cambiare e non sono garantiti univoci.
Pensa alle aziende: sei una felice azienda Merkin che fa affari con altre società in Merkia. Sei abbastanza intelligente da non usare il nome dell'azienda come chiave primaria, quindi usi l'ID azienda univoco del governo Merkia in tutti i suoi 10 caratteri alfanumerici. Quindi Merkia cambia gli ID dell'azienda perché pensava che sarebbe stata una buona idea. Va bene, usi la funzionalità di aggiornamento in cascata del tuo motore db, per una modifica che non dovrebbe coinvolgerti in primo luogo. Successivamente, la tua attività si espande e ora lavori con un'azienda in Freedonia. L'ID società freedonian ha un massimo di 16 caratteri. È necessario ingrandire la chiave primaria dell'ID società (anche i campi della chiave esterna in Ordini, Problemi, Trasferimenti di denaro, ecc.), Aggiungendo un campo Paese nella chiave primaria (anche nelle chiavi esterne). Ahia! Guerra civile in Freedonia, e ' s diviso in tre paesi. Il nome del paese del tuo associato dovrebbe essere cambiato in quello nuovo; aggiornamenti in cascata per il salvataggio. A proposito, qual è la tua chiave primaria? (Paese, ID azienda) o (ID azienda, Paese)? Il secondo aiuta ad aderire, il primo evita un altro indice (o forse molti, se vuoi che anche i tuoi ordini vengano raggruppati per paese).
Tutti questi non sono una prova, ma un'indicazione che una chiave surrogata per identificare in modo univoco una riga per tutti gli usi, comprese le operazioni di join, è preferibile a una chiave aziendale.