在webapplication中"撤消删除"?

Ind*_*ial 5 php mysql transactions undo undo-redo

在按下删除按钮后,我看到越来越多提供撤消选项的网站.如何在按钮后面完成逻辑?

是否通过javascript删除了项目并从用户屏幕中删除了"消失"并添加了计划删除,这使用户有时间撤消它或它是如何工作的?

为用户提供撤消功能的其他选项有哪些?

Pek*_*ica 11

这实际上取决于应用程序的结构.

一种常见的方法是不删除记录/项目,但在内部将其标记为已删除(使用布尔列),将其从所有查询和列表中排除.

如果您有节点结构,则可能需要将项目移动到"回收站"节点,从该节点可以将项目还原到其原始位置.

在这两种变体中,删除的项目将不时被清除 - 基于时间(3周后删除)或音量(保留最多50个已删除的项目,然后开始删除最旧的项目.)


Sim*_*rfe 5

我同意Pekka,但另外建议您将有问题的列设为日期时间字段,而不是布尔值(称之为"已删除"或其他内容).

这将很容易启用"n周后删除"功能,并让您实际"撤消"而不是简单地"取消删除".