亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從數據庫恢復數據的最佳方法是什么?

從數據庫恢復數據的最佳方法是什么?

米脂 2024-01-17 16:38:49
我有一個包含表“客戶”的數據庫。我目前正在創建一個客戶應用程序,管理員應該能夠在其中創建/刪除等客戶。所以我想要一個安全裝置,以防萬一您錯誤地刪除了客戶。我的問題是,如果客戶被刪除,恢復客戶的最佳方法是什么?我想為已刪除的客戶建立一個自己的表,但不知道是否有其他方法可以實現這一點。
查看完整描述

5 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

boolean active一種方法是向您的客戶表添加一列


create table Customers (

  firstname varchar(20),

  secondname varchar(20),

  active Boolean default true

);

然后當您選擇記錄時


select * from Customers where active = true;

然后,您可以將 active 設置為 false,而不是從客戶表中刪除條目


查看完整回答
反對 回復 2024-01-17
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

使用“軟刪除”。這意味著您實際上不會刪除任何內容,而是在每一行上都有一個標志,您可以切換以顯示客戶不活躍。然后,您可以擁有一個僅顯示與取消刪除無關的代碼可以使用的未刪除客戶的視圖。



查看完整回答
反對 回復 2024-01-17
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

一種方法是不實際刪除客戶并添加額外的狀態列。在業務層中,您將能夠顯示狀態為 != DELETED 的所有用戶。

OBS:如果您確實需要從數據庫中刪除它們,您可以創建一個 cron 來掃描所有狀態為已刪除的客戶,并在 x 天后刪除它們。


查看完整回答
反對 回復 2024-01-17
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

我還想補充一點,您可以考慮使用Hibernate Envers。

Envers 將創建新表來記錄審核表的更改狀態。


查看完整回答
反對 回復 2024-01-17
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

  1. 您應該進行數據庫備份。

    備份是您的“第一道防線” - 防止意外刪除......以及防止任何其他可能發生的情況(例如硬盤崩潰?;蛄餍菈嫐?。)。

  2. 另一種方法是將[觸發器]分配給任何刪除(或者就此而言,也分配給“插入”和“更新”語句)。您可以阻止刪除(如果您愿意),并且您將獲得誰嘗試刪除的記錄。

  3. 最后,最好的方法可能是根本不刪除:只需創建一個新的“狀態”列。將初始值設置為“ACTIVE”,將“deleted”值設置為“DELETED”。


查看完整回答
反對 回復 2024-01-17
  • 5 回答
  • 0 關注
  • 219 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號