Lexxtor
@Lexxtor
PHP, Yii2, Android

Есть ли готовые решения, для отмены действий на сайте, как бы SQL-undo?

Пишу проект на Latavel, есть API, через который всё делается.
Пока что думаю что придется в каждом API методе, который что-то меняет в БД, делать мини бэкап - генерировать SQL который после выполнения API метода вернет все как было и сохранять его в БД, чтобы юзер мог запускать отмену последних изменений. Например в UPDATE и DELETE методах брать WHERE получать по нему записи из БД генерить из них отменяющие UPDATE и INSERT запросы. Для INSERT генерить DELETE по ID.

Но это как-то тупо и громоздко. Может быть есть либа, которая берет SQL строку и выдает SQL отменяющий изменения?
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 2
@alexalexes
Проектируйте структуру базы данных так, чтобы сохранялась полная история действий над каждым классом данных, словно сохраняете лог для спец. служб.
Api пользователя не должно использовать DELETE, только INSERT, и UPDATE только для выставления даты удаления записи, выставления метки последней актуальной записи истории. Операцию DELETE имеет право использовать только служебный метод для зачистки истории, когда устаревшие записи становятся неактуальными ни для одного актора системы.
Ответ написан
Комментировать
@drnkwtr
forblitz.ru dev
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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