SQL и совместное редактирование данных |
Здравствуйте, гость ( Вход | Регистрация )
SQL и совместное редактирование данных |
Majestio |
17.3.2013, 20:13
Сообщение
#1
|
Студент Группа: Участник Сообщений: 67 Регистрация: 13.2.2013 Пользователь №: 3710 Спасибо сказали: 1 раз(а) Репутация: 1 |
Возможно вопрос не совсем по Qt, а скорее по использованию БД, тем не менее... Вопрос есть, попробую задать сюда
Вопрос о многопользовательском доступе к данным в БД. Ситуация Пользователь1 открыл на редактирование "Карточку клиента #n" и находится в процессе редактирования. В этом процессе участвует еще куча таблиц из БД, отвечающих за привязку карточки к различным Рубрикаторам/Признакам/Таблицам как угодно. В них тоже вносятся изменения. Пользователь2 открыл ту же "Карточку клиента #n" ... прочитал ее содержимое и ... удалил ее и все привязки, посчитав все это ненужным (имеет право). Ну или отредактировал. Вопрос Как правильно обработать ситуацию для Пользователя1? Какие есть готовые подходы/решения/сценарии/реализации? Сообщение отредактировал Majestio - 17.3.2013, 20:17 |
|
|
lanz |
18.3.2013, 10:00
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Можно сделать например таблицу блокировок, и когда пользователь открывает какую либо карточку, добавлять туда что карточка открыта для чтения/редактирования в такое то время. Тогда другим пользователям запрещать удаление если карточка открыта для редактирования.
А можно удалять карточку, а первому пользователю предлагать на выбор - пересоздать карточку или отказаться от операции ( и например показывать кто удалил ) Вообще все зависит от контекста программы - какие действия будут выглядеть наиболее правильными и логичными. |
|
|
Litkevich Yuriy |
19.3.2013, 21:22
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Тут многое зависит от применяемой СУБД. В Firebird для этого есть соответствующие "уровни изоляции" у транзакции.
|
|
|
Majestio |
4.4.2013, 5:49
Сообщение
#4
|
Студент Группа: Участник Сообщений: 67 Регистрация: 13.2.2013 Пользователь №: 3710 Спасибо сказали: 1 раз(а) Репутация: 1 |
Всем спасибо за обсуждение - пришел к выводу, что в контексте моей разработки логичнее блочить записи. Ибо редактирование может быть многоступеньчатым - его "откаты" из-за вмешательств со стороны буду непонятны и пользователю, и программно, вернее логически не получается их обработать понятно. Поэтому просто недопускаем.
|
|
|
Текстовая версия | Сейчас: 28.11.2024, 14:20 |