Как вести историю в postgresql

#reactjs #postgresql #react-hooks #local-storage

Вопрос:

Я обновил запрос

update table set date = '2021-03-02' where id=1

Теперь мне нужно вернуть ранее сохраненные данные при нажатии кнопки «Выйти» в пользовательском интерфейсе. Поэтому, какие бы изменения ни произошли, они должны вернуться.

Как мы можем это сделать, сохранив данные в виде истории, у кого-нибудь есть идея, пожалуйста, помогите мне продолжить.

Комментарии:

1. Не так-то просто. Вам нужно будет сохранить журнал всех выполненных вами действий и предыдущее состояние.

2. Это будет зависеть от кода пользовательского интерфейса, который вы используете. Кроме того, я не уверен Quit , что это действительно правильный термин для того, что вы делаете. Для меня это просто говорит о том, что я закончил, а не о том, что я хочу вернуться в прежнее состояние. Возможно, вы захотите сделать это более ясным.

3. Я уже делал что-то подобное раньше. Но это гораздо большая работа. Вы можете создать новую таблицу с именем mytable_old или mytable_history . Затем вам придется создать триггер (и, возможно, хранимую процедуру триггера?) это автоматически сохранит старую запись в таблице истории. А затем, если вы выполните откат, вам понадобится некоторый код, который копирует данные из таблицы истории в живую таблицу. При необходимости вы можете удалить перемещенную строку в таблице истории.

4. В вашем описании указано, что вы либо пытаетесь запустить сценарий «Что, если», который никогда не сохраняется, либо разрешаете пользователю вносить изменения, но затем не сохранять их. Как указано, «захват и восстановление», которое вы себе представляете, требует большой работы. Самым простым может быть не пытаться это сделать, а просто не совершать автоматически, а контролировать фиксацию в приложении. Для любого из них убедитесь, что любая АВТОМАТИЧЕСКАЯ ФИКСАЦИЯ отключена, затем для первого выполните откат , для второго предложите 2 варианта Quit and Discard , которые выполняют откат и Quit and Save которые выполняют фиксацию .