从数据库恢复数据的最佳方法是什么?

我有一个包含表“客户”的数据库。我目前正在创建一个客户应用程序,管理员应该能够在其中创建/删除等客户。所以我想要一个安全装置,以防万一您错误地删除了客户。我的问题是,如果客户被删除,恢复客户的最佳方法是什么?

我想为已删除的客户建立一个自己的表,但不知道是否有其他方法可以实现这一点。


米脂
浏览 124回答 5
5回答

临摹微笑

boolean active一种方法是向您的客户表添加一列create table Customers (  firstname varchar(20),  secondname varchar(20),  active Boolean default true);然后当您选择记录时select * from Customers where active = true;然后,您可以将 active 设置为 false,而不是从客户表中删除条目

慕码人2483693

使用“软删除”。这意味着您实际上不会删除任何内容,而是在每一行上都有一个标志,您可以切换以显示客户不活跃。然后,您可以拥有一个仅显示与取消删除无关的代码可以使用的未删除客户的视图。

烙印99

一种方法是不实际删除客户并添加额外的状态列。在业务层中,您将能够显示状态为 != DELETED 的所有用户。OBS:如果您确实需要从数据库中删除它们,您可以创建一个 cron 来扫描所有状态为已删除的客户,并在 x 天后删除它们。

弑天下

我还想补充一点,您可以考虑使用Hibernate Envers。Envers 将创建新表来记录审核表的更改状态。

慕慕森

您应该进行数据库备份。备份是您的“第一道防线” - 防止意外删除......以及防止任何其他可能发生的情况(例如硬盘崩溃。或流星坠毁。)。另一种方法是将[触发器]分配给任何删除(或者就此而言,也分配给“插入”和“更新”语句)。您可以阻止删除(如果您愿意),并且您将获得谁尝试删除的记录。最后,最好的方法可能是根本不删除:只需创建一个新的“状态”列。将初始值设置为“ACTIVE”,将“deleted”值设置为“DELETED”。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java