Dipende da cosa stai facendo:
- Se la velocità è la preoccupazione principale, allora un semplice vecchio
int
è probabilmente abbastanza grande. - Se davvero avrai più di 2 miliardi di record (con una B;) ), usa
bigint
o una guida sequenziale. - Se devi essere in grado di sincronizzarti facilmente con i record creati in remoto, allora
Guid
è davvero fantastico.
Aggiorna
Alcune note aggiuntive (meno ovvie) su Guid:
- Possono essere difficili per gli indici e questo va al centro delle prestazioni del database
- Puoi utilizzare le guide sequenziali per recuperare parte delle prestazioni dell'indicizzazione, ma rinunciare a parte della casualità utilizzata nel punto due.
- Può essere difficile eseguire manualmente il debug dei guide (
where id='xxx-xxx-xxxxx'
), ma ne ottieni parte anche tramite guide sequenziali (where id='xxx-xxx' + '123'
). - Per lo stesso motivo, i Guid possono rendere gli attacchi alla sicurezza basati su ID più difficili, ma non impossibili. (Non puoi semplicemente digitare
'http://example.com?userid=xxxx'
e aspettati di ottenere un risultato per l'account di qualcun altro).