Одновременный ввод данных в поле бд

210
13 апреля 2018, 15:00

Допустим, в web-приложении есть элемент textarea, в который вводится текст, по нажатию на клавишу отправить текст передается в базу данных (MSSQL). К textarea имеют доступ несколько пользователей, каждый может править уже существующий текст и вносить изменения в него. Если пользователи одновременно откроют страницу, и введут изменения (правки) в textarea, то в базе окажутся данные пользователя который отправит данные последним.

Как можно решить данную проблему?

Можно ли как-то отслеживать, что кто-то вводит данные в textarea и сообщать об этом другим пользователям.

Может есть другие варианты?

P.S. Приложение пишется на asp.net core 2.0.

Answer 1

Храните версию документа (номер с инкрементом или хэш), сравнивайте его в момент сохранения.

Если документ небольшой, передавайте и старую версию в момент сохранения тоже, и сравнивайте её.

Блокируйте документ от изменения (монопольный захват на какое-то время).

Рассылайте с бэкэнда через вебсокет уведомления об открытии документа всем заинтересованным лицам.

Или сделайте одновременное редактирование как например тут "Совместное редактирование. Часть 1"

READ ALSO
Переполняется стек. c#. Задание с событиями(event) Ping pong

Переполняется стек. c#. Задание с событиями(event) Ping pong

Есть два класса, у каждого свой метод для вывода информации, в обеих вызывается метод который связан на метод другого класса

520
Как заполнить таблицу с помощью ajax?

Как заполнить таблицу с помощью ajax?

Здравствуйте! Использую DataTables и ajax-запросом хочу отобразить таблицу, передав данные в json

319
c# Долгий поиск dll

c# Долгий поиск dll

Есть приложение на c#, использующее ссылку на библиотеку microsoftinterop

197
Запуск программы через раз

Запуск программы через раз

Всем привет, сделал приложение Windows Form на с#При запуске программа должна автоматически загружаться пр входе пользователя в систему

268