Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2010, 19:50   #1
MaxFm536
Пользователь
 
Регистрация: 03.12.2009
Сообщений: 12
По умолчанию UNDO/REDO в БД

Всем добрый вечер.
Хотел вот такой вопрос задать: существует ли вообще технология UNDO/REDO в базах данных и если есть то какой основной принцип. Мне просто не совсем понятно.
Ну вот если всего один пользователь редактирует БД то тут никаких вопросов нет.
А если пользователей много.
Ну предположим: один юзер изменил одну запись 10 раз. это все записалось в таблицу tbackup. Затем юзер ушел курить бамбук на 3 часа и за это время эту запись изменили 10 юзеров по 10 раз. Все это тоже
Тут пришел наш первый юзер и решил отменить последнее изменение. Тут вопрос - какое оно будет??? те изменения что он делал - тогда пропадут те 100 узменений что делали другие юзеры. или то что сделалось последнее над данной записью, т.е. не то что сделал другой юзер. Тогда история undo/redo нашего первого юзера будет неправильная?!!!
Как тут правильно быть? или существуют другие правила?!!
MaxFm536 вне форума Ответить с цитированием
Старый 10.09.2010, 23:52   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

обычно юзеру такие вещи не доверяются
все откаты и перенакаты изменений данных делаются админом базы
и все это верно если на уровне конкретной таблицы разработчиком не реализована версионность данных, т.е. хранение всех предыдущих версий измененных данных
soleil@mmc вне форума Ответить с цитированием
Старый 11.09.2010, 13:39   #3
MaxFm536
Пользователь
 
Регистрация: 03.12.2009
Сообщений: 12
Радость

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
обычно юзеру такие вещи не доверяются
все откаты и перенакаты изменений данных делаются админом базы
и все это верно если на уровне конкретной таблицы разработчиком не реализована версионность данных, т.е. хранение всех предыдущих версий измененных данных
Ага , то есть сами по себе кнопки UNDO/REDO обычному пользователю недоступны. просто все изменения базы хранятся в лог- и backup-таблицах
и если юэер понял что накосячил то тогда приходит с презентом к админу и тот вертает все в зад?!!!!:
MaxFm536 вне форума Ответить с цитированием
Старый 12.09.2010, 21:58   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

это смотря какой админ и как он настраивал архив/редо/и т.п.-логи
+ смотря про какую субд речь
soleil@mmc вне форума Ответить с цитированием
Старый 12.09.2010, 22:38   #5
MaxFm536
Пользователь
 
Регистрация: 03.12.2009
Сообщений: 12
По умолчанию

БД - SQL Server200 или SQL Express 2005, еще окончательно не определились.
Просто в тех.задании написано требование о реализации технологии
UnDO\REDO. А я вот понятия не имею как ее можно создать с многопользовательским источником данных (БД)
MaxFm536 вне форума Ответить с цитированием
Старый 13.09.2010, 09:46   #6
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

MaxFm536
делай всё триггерами... при update записи копия её идёт в таблицу log и всё... надо будет вернуть от туда и достанешь . таблицу чисти раз в N раз, смотря от количества записей и объёма БД.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 14.09.2010, 13:56   #7
MaxFm536
Пользователь
 
Регистрация: 03.12.2009
Сообщений: 12
По умолчанию

BARNEY как уже реализовывать эту технологию это уже второй вопрос. Мне был важен принцип - из всего я понял что данная технология разрешена только администратору. Юзер самолично не может восстановить запись. Только через админа
MaxFm536 вне форума Ответить с цитированием
Старый 14.09.2010, 14:36   #8
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от MaxFm536 Посмотреть сообщение
BARNEY как уже реализовывать эту технологию это уже второй вопрос. Мне был важен принцип - из всего я понял что данная технология разрешена только администратору. Юзер самолично не может восстановить запись. Только через админа
неа
не так
есть 2 пути:
1) бд поддерживает ведение логов изменений и тогда откат/перенакат через админа базы
2) неважно поддерживает ли логирование изменений сама бд, главное чтобы это было реализовано для конкретных совокупностей данных на уровне таблицы самим разработчиком конкретного экземпляра базы (один из вариантов огласил BARNEY) и тогда пользователю можно предоставить интерфейс для выбора и накатывания обратно уже кем-то затертых данных
soleil@mmc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UNDO\REDO G-Cat Общие вопросы по Java, Java SE, Kotlin 1 14.07.2010 02:18
Доступность пункта Undo/Redo Ser11 Общие вопросы Delphi 17 11.08.2009 17:56
реализация Undo и Redo Bayazet Общие вопросы Delphi 5 03.03.2009 15:48
Undo-Redo NeiL Общие вопросы Delphi 8 14.03.2008 19:04
Undo, Redo Xardas Общие вопросы Delphi 1 24.01.2008 19:35