обновленный вопрос, объединение не требуется в этом сценарии, хотя действительный отзыв
даю приложение по следующим критериям:
рабочие элементы: элементы, которые должны обрабатываться пользователями вручную через Интернет (короткая одностраничная форма)Несколько пользователей, работающих «рабочие элементы»У каждого пользователя есть очередь «рабочих элементов»Существует поиск, который позволяет пользователям просматривать «рабочие элементы» и назначать «рабочие элементы» своим очередям.Пользователи могут извлекать «рабочие элементы» из очередей других людей, назначая их себеПримечание: «рабочие элементы» обрабатываются только один раз. Это не вики-страница, это скорее совместимое упражнение, которое должен выполнять только один пользователь. Как только «рабочий элемент» обработан, он исчезает из системы (кроме некоторого аудита / отчетности), что-то вроде системы отслеживания ошибок
Какой вариант вы считаете лучшим? Можете ли вы привести какие-либо основные приложения, которые поддерживают ваше мнение?
Опция 1:
Когда пользователь А просматривает или обрабатывает «рабочий элемент», «рабочий элемент» блокируется.Когда другие пользователи переходят к «рабочему элементу» после того, как пользователь А открывает «рабочий элемент», они могут видеть только «рабочий элемент». Они не могут писать.Срок действия блокировки истекает через n минут, после чего другой пользователь может заблокировать «рабочий элемент».Вариант 2:
Любой пользователь может открыть «рабочий элемент», не блокируя его.Если пользователь A работает с «рабочим элементом», отправив форму, а пользователь B работает с тем же «рабочим элементом», то работа пользователя A вступит в силу в базе данных, и пользователь B будет проинформирован о том, что его изменения не вступили в силу, поскольку другие Пользователь изменил «рабочий элемент».Мне лично нравится вариант 2. Мысли, пожалуйста?