SQL Wie muss ich ein Feld für einzelbesetzung nennen?
Martin
- php
0 wahsaga0 Ilja0 Axel Richter0 Ilja
Hallo,
ich möchte auf meiner Homepage gern eine Anmeldung einbauen für die jeder nutzer einen Usernamen eingeben muss. Usernamen sollen aber nur ein mal vergeben werden dürfen.
Was für Attribute muss ich dann diem Feld für den Usernamen in der MySQL datenbank angeben??
Gruß
Martin
hi,
ich möchte auf meiner Homepage gern eine Anmeldung einbauen für die jeder nutzer einen Usernamen eingeben muss. Usernamen sollen aber nur ein mal vergeben werden dürfen.
Was für Attribute muss ich dann diem Feld für den Usernamen in der MySQL datenbank angeben??
vor allem dürftest du auf der suche nach "unique" sein.
gruß,
wahsaga
yo,
vor allem dürftest du auf der suche nach "unique" sein.
mal davon abgesehen, dass man schon im programm solche doppelten namen abfangen sollte, bevor man eine INSERT anweisung mit den neuen namen losläßt, reicht ein unique constraint nicht aus. da muss schon ein unique/not null herhalten, bzw. ein primary.
Ilja
Hallo,
vor allem dürftest du auf der suche nach "unique" sein.
mal davon abgesehen, dass man schon im programm solche doppelten namen abfangen sollte, bevor man eine INSERT anweisung mit den neuen namen losläßt,
Warum?
Das Abfangen von Fehlern ist auch eine Methode der Programmablaufsteuerung.
Deine Variante:
SELECT ... WHERE UserName=$versuchterName
Wenn vorhanden, dann Fehlerausgabe; Ende;
sonst INSERT ...; Ende;
Variante 2 mit Abfangen des Fehlers:
Voraussetzung: Das Feld UserName ist UNIQUE.
INSERT ...;
Bei Fehler: Fehlerausgabe; Ende;
Ende;
Meiner Meinung nach wäre die zweite Variante zu bevorzugen, weil sie ohne zusätzliche Datenbankabfrage auskommt.
reicht ein unique constraint nicht aus. da muss schon ein unique/not null herhalten, bzw. ein primary.
Warum?
Da würde ich dann eher das INSERT _nur_ versuchen, wenn der einzufügende UserName _nicht_ Null ist. Das kann die Programmroutine prüfen, weil sie ohnehin prüfen muss, was dort drin steht.
viele Grüße
Axel
yo,
Warum?
Das Abfangen von Fehlern ist auch eine Methode der Programmablaufsteuerung.
viele wege führen nach rom, beides ist sicherlich eine lösung und jeder kann sich seine "bessere" aussuchen. error handling ist sicherlich eine sehr gute methode.
Da würde ich dann eher das INSERT _nur_ versuchen, wenn der einzufügende UserName _nicht_ Null ist. Das kann die Programmroutine prüfen, weil sie ohnehin prüfen muss, was dort drin steht.
das wäre ein wenig durcheinander gewürfelt. wenn ich schon constraints einsetze, dann um es so wasserdicht wie möglich zu machen, sprich die datenbankintegrität wird ohne auswärtigen programmcode gewährleistet. und unique deckt die NULL werte alleine nicht ab. man könnte auch ganz auf constraints verzichten und alles per programmcode lösen. aber warum bei einen "halben" constraint schluss machen ?
Ilja