Задать вопрос
@m0ody
backend dev (python, django, postgresql, celery)

Как реализовать отмену пользовательского действия?

Приложение представляет собой таблицу с большим кол-вом строк. Пользователь управляет данными из этой таблицы (удаление, перенос в группы и т.д.).
Иногда бывает, что пользователь ошибся и удалил не те данные или перенес данные не в ту группу.
Хотелось бы иметь возможность отменить последнее действие. Как это лучше сделать? Создавать дублирующую таблицу и копировать в неё текущие данные и потом только делать действие? Но если данных в таблице много, то это дело будет долгим?
Может есть механизмы для организации такого в самой СУБД (postgresql)?

Опишу детали:
Хранить нужно не долго - хватит минуты две. Таблица сложная, с большим кол-вом связей и с большим кол-вом полей. Поиск происходит практически по всем полям со сложной логикой. Данных пока в районе 25к, но предполагается рост вплоть до 1кк.
Еще проблема в том, что эту таблицу используют другие таблицы (foreign key) и данные в этих других таблицах тоже удаляются, при удалении в главной.
  • Вопрос задан
  • 219 просмотров
Подписаться 4 Оценить 3 комментария
Решения вопроса 1
@entermix
Можно просто помечать записи удаленными
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
Может есть механизмы для организации такого в самой СУБД (postgresql)?

В бд есть транзакции, но они не для такого рода задач - они для консистентности
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы