如何实现SQLite DB更改的单步撤消?

Cod*_*ile 8 database sqlite android

我正在尝试将我的应用程序从确认模型调整为撤消模型.对于那些不知道的人来说,这是你可以通过一次点击删除某些内容的地方,但如果这是一个错误,你可以轻松地撤消它,而不是每次他/她想要做某事时都打断用户问烦人的"你确定要......?" 通过对话问题.

我的应用程序由Android SQLite DB支持,我希望能够撤消一组有限的删除和更新操作.此外,我只需要能够撤消一个顺序更改,并且信息不必长时间坚持arround.

我在undo/redo上阅读的所有内容都说使用命令模型来存储数据.我的问题是如何以轻量级的可恢复方式存储数据库更改?

Bjö*_*lex 3

命令模式的想法是,每个命令都知道如何撤消它。例如,一个AddPersonCommand would add a new record to the Persons-table in your database. To undo this command, you would have to delete that person again.

根据应用程序的类型和数据库的复杂性,您可以像平常一样将更改写入数据库。您始终保留最后 X 个命令对象(X 是可以撤消的操作数),并在必要时调用它们的undo方法。