Originariamente inviato da alfa_19
mmm...ma che utilità ho di mettere un campo numerico che non mi serve a nulla quando ogni campo è riconducibile a nome che deve essere unico e non nullo?
perche' la chiave primaria "dovrebbe" avere alcune caratteristiche che la ottimizzano. Ne cito alcune:

1) il contenuto della chiave primaria non dovrebbe avere attinenza con il contenuto del record. Il suo compito e' di identificare un record e non il suo contenuto.
2) il campo dovrebbe essere composto dallo stesso tipo (char o numerico e se char dello stesso tipo di case upper/lower)
3) Il campo dovrebbe avere lunghezza prefissata
4) Il campo non puo' mai essere NULL
5) Il campo chiave primaria non deve essere mai soggetto di modifiche al suo contenuto.

ma di regole per la chiave primaria ottimale ce ne sarebbero una decina da rispettare. in soldoni ... l'unico tipo di campo che risponde bene a tutte le caratteristiche richieste per una chiave primaria candidata e' solo il campo numerico auto increment.

Pensa solo se si dovesse usare un varchar per relazionare delle tabelle. Ovviamente se devi gestire qualche centinaio di record su una sola tabella ti puo' andare bene anche un brano della divina commedia.