Я разрабатываю приложение php/mysql, которое обрабатывает несколько одновременных пользователей. Я думаю о лучшем подходе к блокированию/предупреждению относительно записей, которые в настоящее время просматриваются/редактируются.блокировка записи многопользовательского приложения - лучший способ?
Сценарий, который следует избегать, - это два пользователя, просматривающих запись, один из которых делает изменение, а другой делает то же самое - с потенциалом, что одно изменение может перезаписать предыдущее.
В последних версиях WordPress они используют некоторый метод для обнаружения этого, но он не кажется полностью надежным - часто возвращающим ложные срабатывания, по крайней мере, в моем опыте.
Я предполагаю, что какая-то форма ajax должна быть на месте, чтобы «пинговать» приложение и сообщить ему, что запись все еще просматривается/редактируется (в противном случае пользователь может просто закрыть окно своего браузера, а затем как приложение знайте это).
Другим решением, которое я мог видеть, является проверка последнего обновленного времени, когда запись отправляется на обновление, чтобы убедиться, что в промежутке она была обновлена в другом месте, - и затем предложит пользователю возможность продолжить или отменить свои собственные изменения ,
Возможно, я лаю неправильное дерево с точки зрения решения - что такое опыт людей в реализации этого (что должно быть достаточно распространенным) требованием?
Это, безусловно, подход, к которому я склонялся - гораздо быстрее реализовать, чем любое причудливое решение ajax, и более надежным. – BrynJ
Вы всегда можете создать решение AJAX поверх этой идеи - пинговать или запрашивать отметку времени либо непосредственно перед сохранением, либо регулярно, а затем спрашивать у пользователя, что они хотели бы сделать - возможно, предоставив возможность «переписать», если их уровень пользователя таков, что они разрешены. – Paul