Hello,
Wie verhindere ich sinnvoll, dass an Stelle XYZ ein weiterer User genau dasselbe macht und so ein Wert doppelt eingetragen wird?
Ist hierfür Lock Tables das richtige Instrument?
Nur dann, wenn es nicht anders lösbar ist.
Es hängt von den Fähigkeiten der Datenbankmaschine ab, wie man es lösen kann.
Bei MySQL ist z.B. seitdem es subselects gibt, fast kein diskretes Locking mehr notwendig.
Wir hatten hier neulich erst so einen Fall. Da ging es zwar um Terminverwaltung, aber es musste auch sichergestellt werden, dass keine Überlappung möglich ist.
http://forum.de.selfhtml.org/archiv/2010/11/t201483/#m1359235
http://forum.de.selfhtml.org/archiv/2010/11/t201483/#m1359300
Und für die Berechnung des Schlüssels lohnt es sich vermutlich, eine benutzerdefinierte Funktion zu erstellen. Dann kann man alles mit einem einzigen Query mit der Datenbankmaschine machen und muss nicht erst Daten ins API holen und dann später wieder wegschreiben.
Nur zwischen genau ein Query passt kein zweites Query.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg