Вам нужен способ пометить сущность как занятую.
Хороший способ: добавить два столбца в таблицу сущности.
busy_user INT either a user id or zero
busy_until TIMESTAMP the time when the busy setting expires, in case the user goes away
Затем, когда пользователь пытается изменить элементвы делаете это:
- , если
busy_user
не равен нулю и не является текущим пользователем, а busy_until > NOW()
отклоняет запрос на редактирование;элемент занят. - Установите
busy_user
в качестве идентификатора текущего пользователя.Установите busy_until на NOW() + INTERVAL 5 MINUTE
- Выполните редактирование при необходимости.
Когда пользователь закончит редактирование, установите busy_user
на ноль.