Последняя версия DataExpress 26.10.11

Изображение Скачать | Изображение Что нового? | Демо

Проблема сохранения при одновременном редактировании записи

Любые вопросы, связанные с веб-сервером DataExpress Web Server.
meteor
Заглянувший
Сообщения: 3
Зарегистрирован: 27 янв 2026, 10:40

Проблема сохранения при одновременном редактировании записи

Сообщение meteor » 27 янв 2026, 10:56

Добрый день.

Есть база, которая условно представляет из себя систему проверки документа между отделами в WEB интерфейсе. Порядок проверки такой:
1. Инициатор создает запись с загруженным документом.
2. Люди из трех отделов(условно А, Б, В) независимо друг от друга проверяют данные в документе. Для каждого отдела доступна своя "галка" об одобрении. У каждого отдела свой пользователь(запрещен множественный вход в одного пользователя) со своими правами. При этом люди могут оставить комментарий, если что-то не так в документе.

Суть проблемы:
Если несколько отделов(разные пользователи) одновременно будут просматривать одну запись и редактировать, то при сохранении непонятно, что сохраняется.

Мое предположение, как решить эту проблему:
Пока что я могу предположить, что это можно решить, создав невидимое поле is_edit(например) и когда кто-то его открывает вносить изменение в БД(с помощью расширений). А если кто-то другой попытается открыть эту же запись на редактирование, то запретить изменять поля(с помощью расширений).

Подскажите, можно ли это решить как-то по другому и возможна ли моя идея теоретически (вдруг я что-то упускаю)?

Аватара пользователя
admin
Разработчик
Сообщения: 8038
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 292 раза
Поблагодарили: 1918 раз

Проблема сохранения при одновременном редактировании записи

Сообщение admin » 27 янв 2026, 16:37

А они редактируют одни и те же поля? В базу сохраняется только часть записи, которая изменилась. Комментарии в форме с документом или в отдельной форме?

meteor
Заглянувший
Сообщения: 3
Зарегистрирован: 27 янв 2026, 10:40

Проблема сохранения при одновременном редактировании записи

Сообщение meteor » 28 янв 2026, 12:27

В зависимости от ситуации они редактируют вручную либо одни и те же поля, либо разные. Но автоматически при сохранении вносятся изменения в журнал изменений. Журнал изменений свой для каждой записи. Как это выглядит:
1. Человек(проверяющий) открывает запись. Там он просматривает документ. Если все ок - ставит галку и сохраняет. При сохранении в журнал изменений(в этой же записи) вписывается что такой-то человек в это время поставил галку.
2. Если что-то не так с документом, проверяющий не ставит галку и пишет комментарий. При сохранении комментарий переносится в журнал изменений

[img]
check.jpg
[/img]
Вложения
check.jpg
check.jpg (72.61 КБ) 350 просмотров

Аватара пользователя
admin
Разработчик
Сообщения: 8038
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 292 раза
Поблагодарили: 1918 раз

Проблема сохранения при одновременном редактировании записи

Сообщение admin » 28 янв 2026, 17:56

Так может вынести комментарии в отдельную форму и запросом подтягивать?

meteor
Заглянувший
Сообщения: 3
Зарегистрирован: 27 янв 2026, 10:40

Проблема сохранения при одновременном редактировании записи

Сообщение meteor » 28 янв 2026, 18:17

Я правильно понимаю идею:

Журнал изменений хранить в отдельной форме для каждой такой записи. Для установления соответствия записи и журнала изменений также хранить ID в форме с журналами. И получается при сохранении комментарий будет быстро вписываться в соответствующий журнал?

А что произойдет при теоретической ситуации, когда два пользователя одновременно попытаются сохранить?

Аватара пользователя
admin
Разработчик
Сообщения: 8038
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 292 раза
Поблагодарили: 1918 раз

Проблема сохранения при одновременном редактировании записи

Сообщение admin » 28 янв 2026, 18:47

Проще показать, чем рассказать. Никаких конфликтов при записи комментариев не будет.
Вложения
ПРИМЕР.zip
(100.56 КБ) 28 скачиваний


Вернуться в «Общие вопросы»