vielleicht hab ich die Frage falsch formuliert, denn irgendwie ist wenig traffic bei diesem Thread ... ich versuch's jetzt nochmal, denn ich kann mir nicht vorstellen, dass bei den ganzen schlauen Leuten, die sich hier tummeln, sich noch keiner mit der Problematik beschäftigt hat und nicht zumindest einen paar Hints geben kann.
InnoDB von MySQL kann ja innerhalb der Transactions Locks auf bestimmte Datensätze setzen. Ähnlich verhält sich das Ganze ja auch mit bei PostgreSQL, wo man genauso mit "SELECT ... FOR UPDATE" usw. Locks setzen kann. Das löst das Problem auf der Skript-Ebene, d.h. damit kann ich z.B. verhindern, dass wenn ich über SELECT ein parent-Element gefunden hab und ich zu diesem ein child-Element anhängen will, dass das parent-Element in der Zwischenzeit nicht von einem anderen User gelöscht wird. So weit, so gut ...
Jetzt hab ich aber ein Skript, dass im ersten Schritt mit einem SELECT die Daten (zB eines Kunden) herausliest. UserA tut dies bearbeitet die Daten aber so lange, dass ein UserB in der Zwischenzeit das gleiche Skript aufruft, die Daten schnell ändert und es submitted. Wenn nun die Daten von UserA auch submitted werden, dann würden ja die Änderungen von UserB verloren gehen, was noch nicht mal das schlimmste Szenario ist.
Wofür ich jetzt dankbar wäre, sind hints, wie man diese Problematik, die sich ja nicht einfach über eine einzelne Transaktion lösen läßt (was ist wenn UserA über Nacht nach Hause geht, bevor er das Formular abschickt?), angehen könnte. Bitte, bitte, bitte. Ich hab im Google nach "concurrency", "transactions", "multiuser applications" usw. gesucht, aber irgendwie finde ich nicht die richtigen Schlagwörter um auf die richtigen Themen zu kommen. Ich kann mich mir nämlich nicht vorstellen, dass das Problem nicht ziemlich "beliebt" ist und man keine Lösungen finden kann, wenn man nur wissen würde, wo/wie man suchen muss.