Что почитать о создании многопользовательского приложения для редактирования данных?

Добрый день. Делаем веб-приложение, что-то вроде CRM. Есть компания, в которой, например 10 менеджеров. У компании есть сайт с огромной формой. Сайт на вордпрессе, форма - gravity forms. Клиент заполняет форму и заявка приходит на сайт. И есть второй сайт-приложение на Laravel + JS, куда посредством API Gravity forms загружаются данные этих заполненных форм. Сайт этот, по сути, пустой - в том смысле, что разметка (почти вся) и подстановка данных генерятся на JS на основе полученного эндпойнта. Грубо говоря, все эти данные оформляются в таблицу. Эту таблицу означенные менеджеры могут редактировать и сохранять - тогда данные на сервере перезаписываются. Более того, можно редактировать одну единственную запись, а можно выделить сразу несколько или все - и изменить то или иное поле сразу у нескольких записей.

Проблема в следующем: как предотвратить перезатирание данных, если, к примеру случайно над одной формой работает два или больше менеджеров? Что можно почитать по этому поводу, в каком направлении хотя бы гуглить?

Надеюсь, понятно сформулировал ситуацию и проблему, но если что - могу что-то уточнить.
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ответы на вопрос 3
Stalker_RED
@Stalker_RED
Почитайте о совместном редактировании. (первая попавшаяся статья)

Если это сложно, и компания небольшая, то сделайте уведомления, типа "этот файл сейчас редактирует Антон Борисов"

или
"пока ты редактировал, этот файл изменил Василий Иванов
что делать: перезаписать, не сохранять, посмотреть дифф"
Ответ написан
Комментировать
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Что можно почитать по этому поводу, в каком направлении хотя бы гуглить?
Основных вариантов, на вскидку, могу предложить следующие:
1. При редактировании записи (строки или любой другой сущности, по вашему усмотрению) на неё устанавливается метка, примерно такая: "редактируется пользователем таким-то", соответствующая метка удаляется по завершению редактирования. Таким образом это работает в некоторых CMS.
2. Можно придумать какую-то систему на основе WebSocket-протокола, я думаю сервисы на подобии GoogleDocs или Trello (позволяющие редактировать один документ сразу нескольким пользователям) работают именно на его основе, это как минимум позволит видеть обновления данных всем пользователям практически в реальном времени
3. Можно хранить все версии данных, а потом что-то делать с ними... Что именно делать - пока сказать затрудняюсь, т.к. не до конца понимаю, какие у Вас конечные требования, возможно этот вариант не подойдёт.
Ответ написан
Комментировать
@NewDevLab
при сохранении записи обновлять метку времени.
если метки имеющейся в БД записи и записи от редактировавшего пользователя не совпадают, то вывод - строка уже была отредактирована. далее, в зависимости от требуемой логики.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы