Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kann ich VARCHAR als PRIMARY KEY verwenden?

Natürlich können Sie das in dem Sinne, dass Ihr RDBMS es Ihnen erlaubt. Die Antwort auf die Frage, ob Sie sollten tun, ist jedoch anders:In den meisten Situationen sollten Werte, die außerhalb Ihres Datenbanksystems eine Bedeutung haben, nicht als Primärschlüssel ausgewählt werden.

Wenn Sie wissen, dass der Wert in dem System, das Sie modellieren, eindeutig ist, sollten Sie Ihrer Tabelle einen eindeutigen Index oder eine eindeutige Einschränkung hinzufügen. Ihr Primärschlüssel sollte jedoch im Allgemeinen ein "bedeutungsloser" Wert sein, z. B. eine automatisch inkrementierte Zahl oder eine GUID.

Der Grund dafür ist einfach:Dateneingabefehler und seltene Änderungen an Dingen, die unveränderlich erscheinen, passieren. Sie sind viel schwieriger auf Werte zu fixieren, die als Primärschlüssel verwendet werden.