Ich entwickle eine PHP/MySQL-Anwendung, die mehrere gleichzeitige Benutzer behandelt. Ich denke an den besten Ansatz, wenn es darum geht, Datensätze, die gerade angezeigt/bearbeitet werden, zu sperren/zu warnen.Multi-User-Anwendung Datensatzsperre - beste Methode?
Das zu vermeidende Szenario ist, dass zwei Benutzer den Datensatz anzeigen, wobei der eine Änderungen vornimmt und der andere dies ebenfalls vornimmt - mit dem Potenzial, dass eine Änderung die vorherige überschreibt.
In den neuesten Versionen von WordPress verwenden sie eine Methode, um dies zu erkennen, aber es scheint nicht ganz zuverlässig - oft nach meiner Erfahrung oft falsch positive Ergebnisse.
Ich gehe davon aus, dass irgendeine Form von Ajax vorhanden sein muss, um die Anwendung zu "pingen" und sie wissen zu lassen, dass der Datensatz noch angezeigt/bearbeitet wird (andernfalls könnte ein Benutzer einfach sein Browserfenster schließen und dann die Anwendung) weiß das). Eine andere Lösung, die ich sehen konnte, ist die Überprüfung der letzten aktualisierten Zeit, wenn ein Datensatz zur Aktualisierung gesendet wird, um zu sehen, ob er in der Zwischenzeit an anderer Stelle aktualisiert wurde - und dann dem Benutzer die Wahl bietet, fortzufahren oder eigene Änderungen zu verwerfen .
Vielleicht bin ich bellt den falschen Baum in Bezug auf eine Lösung - was sind die Menschen Erfahrungen mit der Umsetzung dieser (was muss eine ziemlich häufige) Anforderung sein?
Das ist definitiv der Ansatz, auf den ich zutrug - viel schneller zu implementieren als jede Art von Ajax-Lösung und zuverlässiger. – BrynJ
Sie können die AJAX-Lösung immer mit dieser Idee bauen - Pingen oder die Zeitstempel entweder kurz vor dem Speichern oder regelmäßig anfordern, dann den Benutzer fragen, was er tun möchte - vielleicht eine Option zum Überschreiben geben wenn ihr Benutzerlevel so ist, dass sie erlaubt sind. – Paul