Как реализовать однократную отмену изменений SQLite DB?

Я пытаюсь адаптировать мое приложение из модели подтверждения к модели отмены. Для тех из вас, кто не знает, это то, где вы можете удалить что-то одним щелчком, но если это была ошибка, вы можете отменить его так же легко, в отличие от прерывания пользователя каждый раз, когда он или она хочет что-то сделать Спросите раздражающего «Вы уверены, что хотите …?» Вопрос через диалог.

Мое приложение поддерживается Android SQLite DB, и я хочу иметь возможность отменить ограниченный набор операций удаления и обновления. Кроме того, мне нужно только отменить одно последовательное изменение, и информация не должна заклеиваться в течение очень долгого времени.

Все, что я читал в undo / redo, говорит, чтобы использовать модель команды для хранения данных. Мой вопрос в том, как я могу сохранить изменения базы данных в облегченном восстановительном режиме?

Solutions Collecting From Web of "Как реализовать однократную отмену изменений SQLite DB?"

Идея шаблона команды заключается в том, что каждая команда знает, как ее можно отменить. Например, AddPersonCommand добавит новую запись в Person-table в вашу базу данных. Чтобы отменить эту команду, вам придется удалить этого человека еще раз.

В зависимости от типа приложения и сложности базы данных вы можете просто записать изменения в базу данных, как обычно. Вы всегда сохраняете последние объекты команды X (X – количество действий, которые можно отменить), и при необходимости вызывают их метод undo .

Вы также можете использовать библиотеку RestorableSQLiteDatabase, которая является оболочкой базы данных SQLiteDatabase android и автоматически генерирует восстановление SQL-запросов для отмены изменений с использованием имени тега.