Lude: überschreiben von Änderungen vermeiden

Beitrag lesen

Hi,

Ich habe eine Oberfläche gebastelt, mit der ein Benutzer Daten aus 3 Tabellen bearbeiten kann. Das funktioniert auch alles schön und gut, nur überlege ich jetzt, was denn passiert wenn 2 Leute gleichzeitig die Daten ändern, und so der eine die Änderungen des anderen überschreibt.

das wuerde ich einen Konflikt nennen. Das kann nicht ausgeschlossen werden, es sei denn Du unterstuetzt das "Aus-Checken" von Datensaetzen (Datenmengen).

Aber was wenn jetzt 2 Benutzer dieselben Daten editieren wollen? Das darf nicht sein, also muss ich mir eine Art Locking-Mechanismus überlegen.

Du keonntest ein "Aus-Checken" so implementieren, dass vor dem Zurueckschreiben geprueft wird, ob der Datensatz nach dem Lesen in einer anderen Sitzung zwischenzeitlich upgedated worden ist. Da helfen traditionell Datenfelder vom Typ 'datetime', oder auch ein Revisionszaehler vom Typ 'int'.

Nur hat das auch wieder einen Haken, denn wenn ein Benutzer jetzt die Daten editieren will, dann aber nichts mehr macht sind die Daten auf ewig gesperrt, also muss ich noch einen Timestamp hinzufügen, und sagen wir mal nach 10 Minuten Inaktivität das Flag zurücksetzen.

Wegen der Verbindungslosigkeit von http benoetigst Du einen Sitzungstimeout.

Nur wie gesagt sind es ein paar mehr Daten und das Ändern könnte durchaus mal etwas dauern.

Es gibt nichts besseres, drum sei gluecklich.   ;-)

Gruss,
Lude