Hi mech, (warum eigentlich sorgenkind?)
Ich würde eine extra Tabelle Locks einrichten. In dieser Tabelle werden alle Artikel die bearbeitet werden gespeichert. In der Form in etwa so: (tut mir Leid für alle die nicht meine Schriftart benutzen, aber ich weiß nicht wie ich es jetzt besser darstellen soll)
+---------------------------------------------------------------+
|Tabelle Locks |
+-----------+---------+---------------+-------------------------+
|artikel_id | user_id | timestamp | (*art des Locks) |
+-----------+---------+---------------+-------------------------+
|2300 |123 |20030115001843 |lese-oder schreib-verbot |
+-----------+---------+---------------+-------------------------+
|aaaaaaaaaaa|uuuuuuuuu|tttttttttttttt |read/write |
+-----------+---------+---------------+-------------------------+
Wenn jetzt ein User einen Artikel aendert, wird ein entsprechender Lock eingetragen, wenn er fertig ist, wird er wieder ausgetragen. Wenn der User den Browser während einer Aenderung geordnet schließt, wird ein Script gestarted, dass den Lock wieder löscht. Wenn er allerdings die Seite ohne diesen zusätzlichen Request wegen abgeschaltetem Js (in einer Firma eher unwahrscheinlich), Fehler des Browsers ( ih sag nur IE ;-)) oder eines abstürzendem Betriebsystems verläßt, bleibt der Lock zwar vorübergehend in der Tabelle, kann aber leicht per Cron Jaob, oder bei jedem Start des php Scriptes, über den timestamp, gelöscht werden.
Wenn du willst kanst du auf diese Weise auch verschieden Arten eines Locks implementieren, wie etwa, während einer Aenderung darf niemand den Artikel aendern, oder der Artikel wird zwar geändert. darf aber geöfnet werden, aber nur unter einem anderen Namen gespeichert werden usw.
Ich hoffe ich konnte dir weiterhelfen.
mfg Andres Freund