gpt4 book ai didi

java - 如何在基于 Spring MVC 的 Web 应用程序中创建撤消功能?

转载 作者:行者123 更新时间:2023-11-30 09:34:31 25 4
gpt4 key购买 nike

我有一个雇员和一个相应的雇员历史表。

两个表具有相同的结构。历史表用于跟踪一段时间内对员工所做的历史更改。

现在,我需要为对员工所做的更改添加一个撤消功能。

例如员工名称于 8 月 1 日更改。现在,这将更新 Employee 表中的员工职位,并在 employee_history 表中插入相应的历史记录。

现在,我需要撤消此更改。员工编辑页面将有一个按日期对员工所做的更改列表,旁边有一个撤消按钮。

单击撤消应该将 Employee 表中的更改恢复为以前的值。此外,我认为历史表中标题已更改的记录也应删除。

此外,当我恢复对员工表的更改时,即将标题恢复为以前的标题时,这将触发对历史表的​​插入,这是我不想要的。

我不确定执行此操作的最佳方法是什么。

任何建议都会有所帮助。

最佳答案

如果你想实现一个“持久的”撤销 - 一个在应用程序重启/ session 超时后仍然存在的撤销,你应该考虑扩展你的数据库架构宽度 timestamp 字段并删除最后一个条目或用适当的早期条目替换它。

“轻型”版本将使用堆栈来存储最后的交互,包括原始值和新值。您当然可以在 session 失效时保留堆栈以结合这两种方法。这似乎是您实际在做的事情。

您可以通过为每个更改创建和存储或导出 SQL 迁移脚本来扩展此解决方案,记录更改,并在可能的情况下记录相反的操作。因此,您甚至可以在应用程序实例和环境之间传输脚本,并拥有数据库状态的完整“可重放性”。

tl;dr - 看起来您已经实现了一个很好的解决方案

关于java - 如何在基于 Spring MVC 的 Web 应用程序中创建撤消功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11760562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com