如何使用数据库管理撤消删除

时间:2016-03-27 18:45:47

标签: mysql sql database

我有一个包含用户帖子的数据库。

用户可以选择删除帖子,而不是确认删除,我想有一个撤消选项,点击后恢复帖子。如果用户刷新页面或离开页面,撤消选项将消失。

使用当前解决方案,数据库会在用户按下确认按钮后立即删除帖子。但是,我猜测我必须在删除后保留帖子,以便可以使用撤消选项恢复,但是我何时以及如何删除帖子?

编辑:

有没有办法安排删除,比如用户删除后24小时?我知道我可以使用cron,但是对于很多用户来说,这需要大量的cron工作。

感谢。

2 个答案:

答案 0 :(得分:0)

不要“物理”删除记录。将其标记为“已删除”(例如,对于“已删除”,将status引入并设置为0,为其他人添加1。这将需要更改表格。但是这样你几乎可以有无限的选择,即你可以在“删除”帖子上设置deleted_timestamp并让cron job删除旧帖子。

只是澄清一下,系统的cron作业不是你唯一的选择。您可以管理每100个常规用户请求以执行后台作业,例如使用if (rand ( 1 , 100 ) === 50) {do_pseudocron_job();}

答案 1 :(得分:0)

如果您使用的是Oracle或Vertica,您可以使用闪回查询,使用它仍然可以删除,并且如果仍然可以回滚,请查看详细信息:

https://docs.oracle.com/cd/B19306_01/backup.102/b14192/flashptr002.htm