Sind Benutzernamen ein gültiger Kandidat für einen Primärschlüssel?

7

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?

    
Emanuil Rusev 27.01.2010, 08:39
quelle

5 Antworten

8

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?

    
Rubens Farias 27.01.2010, 08:44
quelle
7

NEIN , Sie sollten den Nutzernamen nur als eindeutigen Schlüssel / Konstante verwenden . Benutzername kann geändert werden, nur und Beispiel: es kann eine Marke sein und der Besitzer fordert Sie auf, es fallen zu lassen.

    
sorin 27.01.2010 08:44
quelle
5

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.

    
naivists 27.01.2010 08:45
quelle
4

Vom Standpunkt des Kunden aus wetten Sie. Ich möchte nicht, dass mein Benutzername DWong1145 ist.

    
DWong 27.01.2010 08:43
quelle
2

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>     

Journey 27.01.2010 09:20
quelle