Ich weiß, dass Ersatz-Primärschlüssel im Allgemeinen gegenüber natürlichen Primärschlüsseln empfohlen werden, aber gibt es irgendwelche Argumente für Ersatz-Primärschlüssel, wenn es um Benutzernamen geht?
Wenn Sie keine doppelten Nutzernamen erhalten möchten, erstellen Sie eine UNIQUE constraint
.
Was ist, wenn DWong1145
den Benutzernamen ändern möchte? Wollen Sie alle Datenbankbeziehungen auf UPDATE CASCADE
setzen?
Es ist ein guter Kandidat in irgendeiner Hinsicht, aber Sie müssen überlegen, ob Sie es wirklich tun wollen. Wenn Sie beispielsweise einen Benutzer mit einem bestimmten Benutzernamen haben, wird der Benutzer "gelöscht" (oder als gelöscht markiert). Also, es gibt eigentlich keinen Grund, nicht zuzulassen, einen anderen Benutzer mit dem gleichen Benutzernamen zu erstellen, aber es ist bereits "genommen", da es ein Primärschlüssel ist.
Ein großer Nachteil einer Zeichenfolge als Primärschlüssel, unabhängig davon, ob es ein Benutzername oder etwas anderes ist, besteht darin, dass alle Fremdschlüsselspalten, die auf die Tabelle verweisen, ebenfalls Zeichenfolgen sein müssen, was sowohl langsamer ist als auch mehr Speicherplatz verschwendet / p>
Tags und Links authentication primary-key database-design