hotti: Fragwürdige Literatur (web & mobile Developer, Ausgabe 11/2013)

Beitrag lesen

hi,

In der MySQL-Tabelle wird die E-Mail-Adresse als Primärschlüssel verwendet und behauptet, damit wäre sichergestellt, dass sie eindeutig ist. Ein paar Zeilen Später wird gesagt, dass der Benutzername natürlich auch eindeutig sein soll und man das nachher im PHP-Script prüfen soll - wozu?

Nun, eine Emailadresse ist weltweit eindeutig. Grundsätzlich spricht nichts dagegen, die Emailadresse als Primärschlüssel zu verwenden. Es ist auch für den Benutzer einfacher, sich nur die Emailadresse merken zu müssen, als einen zusätzlichen Benutzernamen. Oft ists jedoch sinnvoller, in einer Tabelle einen vom Inhalt unabhängigen Primärschlüssel zu designen, beispielsweise ein auto-increment und auf das email-Feld einen Unique Key zu setzen.

Unsittig ists freilich, irgendwelche Eindeutigkeiten mit PHP prüfen zu wollen, das überlassen wir selbstverständlich der DB-Engine, die macht sowas eindeutig performanter. Und es gibt für einen Benutzer keine beklopptere Meldung als die, dass sein Name schon anderweitig vergeben ist. Bei solchen u.ä. Datenerhebungen würde ich auch eine Kollation einstellen, die Case-Sensitive ist.

Fatal jedoch, nicht machen: Das Passwort (Neueingabe Klartext) von der DB-Engine hashen zu lassen. Wenns Logging eingeschaltet ist, siehste, siehste ;)

Viele Grüße,
[Name schon anderweitig vergeben]