Ci sono almeno tre caratteristiche desiderabili da tenere a mente quando si scelgono o progettano le chiavi: semplicità, stabilità e familiarità. Nella pratica, le persone spesso trovano più semplice ricordare e lavorare con parole e lettere anziché solo numeri ed è per questo che gli identificatori alfanumerici sono generalmente più comuni degli identificatori numerici (esempi di identificatori alfanumerici: targhe automobilistiche, numeri di volo delle compagnie aeree, prenotazione dei posti numeri, codici di stato e di paese, codici postali, indirizzi e-mail). Esistono studi e prove aneddotiche a supporto dell'idea che le chiavi alfanumeriche siano più utilizzabili dei numeri da soli. Inoltre, gli identificatori alfanumerici possono essere spesso più corti di quelli numerici. D'altra parte, gli identificatori sequenziali numerici sono molto comuni per alcune applicazioni (ad esempio numeri di fatture, numeri di conti bancari). Quindi suggerisco che tu debba essere guidato dalle esigenze dei tuoi utenti/aziende nel determinare queste cose.
Si noti che i generatori di sequenze a livello di motore DBMS spesso presentano limitazioni che li rendono inadatti per alcune applicazioni. Ad esempio potrebbe non essere facile aggiornarli o usarli in un'architettura di database distribuita. Un'altra limitazione comune è che solo una colonna "autoincrementante" può essere consentita per tabella, il che preclude il loro utilizzo come chiave aziendale se si desidera anche una chiave surrogata per la stessa tabella.
Non penso che tu abbia detto che usare ID o numeri è una cattiva idea su se stesso. Dipende. Spesso ID e numeri sono semplicemente perfetti. Chiediti: quale altra chiave stavi pensando altrimenti? E sarebbe meglio? Non penso che sia essenzialmente migliore. Un trucco con i numeri, non iniziare con 1, ma lasciare che un ID inizi con 1000000, l'altro con 20000000, ecc. – tvCa
@tvCa: Ovviamente non intendo Id o numeri. Intendo Id incrementale automatico come parte delle informazioni specifiche del database. – Vokinneberg
@Vokinneberg per favore chiarisci la tua domanda. Quando si dice "come identificatore di entità aziendale" questa non è una dichiarazione chiara. La maggior parte di noi pensa al business come cliente. Ma il tuo commento suggerisce che vuoi dire che è l'ideale per la chiave primaria per il tavolo. E la risposta a QUESTA domanda è che è sicuramente una buona idea per un PK quando lo stai definendo come una colonna autoincrementante e il PK ... purché tu non stia generando un GUID ... Vorrei anche aggiungere che mostrando a un cliente un numero di conto che è un valore auto incrementato va bene ...fintanto che non si tratta di un GUID – MER