Hallo,
wie kann man mit MySQL in der Praxis einen eigenen Primärkey nutzen ?
Folgendes Szenario: Jeder Nutzer eines Onlinedienstes sollte einen eindeutigen(„uniquen“) Key besitzen mit dem auf seinen Datensatz zugegriffen werden kann. Ein Autoinkrement Feld kann aber nicht verwendet werden, da sonst die Gefahr besteht, dass andere auf die Datensätze von Dritten zugreifen können (durch Experimentieren oder systematisches Brute and Force). (Es erfolgt nämlich keine Passwortabfrage, der Key ist alleiniger Zugangsschlüssel)
Bei den Key sollte es sich um einen ca 15 Zeichen langen Key,der nur aus _Grossbuchstanben_ besteht .
Kann man derartige Keys mit MySQL erzeugen? Wenn ja wie?
(Meines Wissens nicht? Ich würde den nun per Java generieren und an das DBMS per SQL zurückliefern.)
Wie sieht das dann konkret beim Anlegen eines Datensatzes aus. Es besteht ja immer (theoretisch) die Gefahr, dass ein Key doch bereits existiert (da diese nicht vom DBMS systematisch generiert und vergeben werden). Wie wird das in der Praxis gemacht, erzeuge ich erst einen leeren Datensatz mit dem Key und wenn das DBMS keinen Fehler zurückliefert, dann update ich die restlichen „Datensatzfelder“? Oder versuche ich gleich den gesamten Datensatz inkl. dem neuen Key zu schreiben? und warte dann auf eine Fehlermeldung.
Macht es Sinn, dass DBS aus Performancegründen einen eigenen Autorgenerierten Key (INT Auto_Increment) nutzen zu lassen und meinen eigenen Key nur als eine zusätzlcihe Referenz auf den DAtensatz zu nutzen? Sind derartige (lange) slebstgenerierte CHAR basiertes Keys gleich performant wie ein INT Auto_Increment?
Vielen DAnk
Thomas