#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
которые выполняют фиксацию .