Многопользовательское приложение. Как сохранить целостность информации?

A
На сайте с 06.11.2010
Offline
128
715

Пишу веб-приложениe.

Оно не для одного пользователя и некоторые страницы можно будет изменять многим пользователям.

Вопрос: как сохранять целостность информации, ведь пользователь может начать редактировать информацию, а другой уже удалил эту страницу.. тот нажимает сохранить и.. капец.

Сейчас я постоянно делаю проверки "существует ли это.."

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

Ну и в таком духе... Как защищаться? Перед каждым дейсвтием делать стопицот проверок?

C
На сайте с 04.02.2005
Offline
277
#1

Блокировать запись (добавить поле - Занято)

H
На сайте с 09.10.2012
Offline
11
#2

Ну, у вас два пути.

Первый - блокировка. Человек открыл страницу на редактирование - остальным, как выше написано, пишется, что данная страница в настоящий момент редактируется, и не давать второму ее изменить, пока первый не закончит правки (нажмет сохранить). реализовать можно как поле в БД.

Второй - совместное редактирование, но это будет очень сложная реализация. :)

Подгружаем изменения любого пользователя остальным в реальном времени.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3
hedint:
Ну, у вас два пути.
Первый - блокировка. Человек открыл страницу на редактирование - остальным, как выше написано, пишется, что данная страница в настоящий момент редактируется, и не давать второму ее изменить, пока первый не закончит правки (нажмет сохранить). реализовать можно как поле в БД.
Второй - совместное редактирование, но это будет очень сложная реализация. :)
Подгружаем изменения любого пользователя остальным в реальном времени.

Нажал я редактировать, пошел попить чаю. Позвонил телефон - позвали погулять. Пошел гулять.

В итоге Вася за день вырвал на голове все волосы, гадая, кто же это может страницу редактировать целый день:)

Как вариант, чекать на стороне клиента активность. Если пользователь на странице ниче не делает ХХ секунд - history.go(-1) ну или еще что нибудь.

ТС, чтобы на Ваш вопрос ответь с большей точностью, нам необходимо знать другую информацию(как часто будет происходит такое, будет ли одновременное редактирование 1 документа сотней юзеров и т.д.). В общем, чем больше инфы, тем полноценней ответ Вы получите.

Подпись))
A
На сайте с 06.11.2010
Offline
128
#4

Спасибо всем за ответы, решил пока не париться и кто успел - тот изменил)

Потом может сделаю как в джире, там ведётся история..

temniy
На сайте с 15.03.2008
Offline
235
#5
Милованов Ю.С:
Нажал я редактировать, пошел попить чаю. Позвонил телефон - позвали погулять. Пошел гулять.
В итоге Вася за день вырвал на голове все волосы, гадая, кто же это может страницу редактировать целый день:)

Ну для этого существуют сессии и время их жизни.

⭐ Лучший хостинг от 4 евро, VPS от 6 евро, VPN недорого - разные локации - любые карты - скидки до 20% - https://fornex.com/c/ffi2e3/ru/services/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий