我正在使用BST(二叉搜索树)构建数据库,我希望用户能够回滚最后5条命令。有什么建议么?我正在使用Java。ROLLBACK undo redo
回答
您是否考虑过使用Berkey DB?它是免费的,支持嵌套事务(这将让你有任何数量的回滚的水平):
http://download.oracle.com/docs/cd/E17076_02/html/gsg_txn/JAVA/nestedtxn.html
即使你决定实现自己的数据库,它可能是作为参考用。
这听起来像你想Memento pattern。实质上,您创建一个对象,其中包含以下所需的所有信息:
- 从操作之前的树状态开始,重复该操作。 (重做)
- 从操作后的树状态恢复操作。 (撤消)
你会保留最后五个。当用户请求撤消时,请采取最新措施,让其恢复操作,然后以某种方式(例如,某些索引变量)指示您在纪念品列表中的位置。然后,您应该能够在任一方向移动列表,尽可能多地撤消和重做。
我想着插入我的树到一个堆栈弹出它时,用户调用撤消?这是可能的吗?/ – user475529 2010-11-09 06:50:41
你当然可以这样做,但使用纪念品可以节省大量空间,同时仍然允许撤销/重做功能。 – cdhowie 2010-11-09 06:52:32
- 1. Undo-Redo重复命令
- 2. (Undo/Redo || KeyStrokes)不能在JEditorPane中工作
- 3. 如何使用undo-redo设计SQL数据库?
- 4. 如何(UNDO&REDO)按钮的状态重置froala编辑
- 5. Mercurial Undo合并
- 6. If..begin..begin tran..Rollback
- 7. window.innerHeight与React和REDO
- 8. REDO传奇和history.push
- 9. Php,undo mysql_real_escape_string
- 10. undo nsarray排序
- 11. React-day picker with REDO形式
- 12. oracle-undo表空间
- 13. SQL服务器undo
- 14. Netbeans 6.9 UNDO操作
- 15. Rollback im phpmyadmin
- 16. SQL 2005 ROLLBACK TRANSACTION
- 17. Symfony2 Doctrine MongoDB rollback
- 18. Ab initio rollback
- 19. SQL ROLLBACK TRANSACTION
- 20. RAISERROR和ROLLBACK TRANSACTION
- 21. 如何执行命令'appcfg rollback'?
- 22. Haskell前奏藏匿,UNDO?
- 23. COMMOLL SQL TRANSACTION IN ROLLBACK
- 24. Rails 3:rollback for after_create
- 25. spring-hibernate transactional dont rollback
- 26. linq to sql submitchanges rollback
- 27. 批处理DB2执行COMMIT/ROLLBACK和ROLLBACK以SAVEPOINT
- 28. TSQL:触发/ ROLLBACK TRANSACTION错误
- 29. mysql_query(“ROLLBACK”);不起作用
- 30. SessionAwareMessageListener是否需要commit()/ rollback()?
树有多大?如果它足够小,您可以保留最近5次操作的副本。 – leonm 2010-11-06 22:27:43
不是很大。我将如何处理经纬度5操作? – user475529 2010-11-06 22:48:30
@ user475529:不要保留最近五次操作,每次操作后复制整个树并保留最近五次操作。 – 2010-11-07 00:02:46