Frage

Ich weiß Surrogat Primärschlüssel werden in der Regel über die natürlichen Primärschlüssel empfohlen, aber gibt es keine Argumente für Surrogat Primärschlüssel, wenn es um Benutzernamen kommt?

War es hilfreich?

Lösung

Wenn Sie keine doppelten Benutzernamen erhalten möchten, erstellen Sie eine UNIQUE constraint .

Was passiert, wenn DWong1145 will es den Benutzernamen ändern? Wollen Sie alle Datenbankbeziehungen machen UPDATE CASCADE sein?

Andere Tipps

NO , sollten Sie Verwendung Benutzernamen nur als ein eindeutiger Schlüssel / constant . Benutzername kann geändert werden, gerade und Beispiel:. Es ist eine Marke sein kann, und die Besitzer Anfragen Sie es fallen zu lassen

Es ist ein guter Kandidat in gewissem Sinne, aber Sie haben zu prüfen, wenn Sie es wirklich tun wollen. Zum Beispiel haben Sie einen Benutzer mit einem bestimmten Benutzernamen, dann wird der Benutzer „gelöscht“ (oder als gelöscht markiert). So gibt es eigentlich keinen Grund, einen anderen Benutzer mit demselben Benutzernamen zu erstellen erlaubt, aber es ist bereits „genommen“, da es sich um ein Primärschlüssel ist.

Aus Kundensicht, setzen Sie. Ich möchte nicht mein Benutzername DWong1145 sein.

Ein großer Nachteil einen String als Primärschlüssel hat, unabhängig davon, ob es sich um einen Benutzernamen oder etwas anderes ist, dass alle Fremdschlüsselspalten in dieser Tabelle wird auch Strings sein müssen, was sowohl langsamer und Abfälle mehr Platz.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top