軟刪除和硬刪除的處理方法

2022-07-09 18:42:10 字數 831 閱讀 8189

硬刪除就是傳統的物理刪除,直接將該記錄從資料庫中刪除。但是是人總會犯錯誤,在誤操作刪除了重要資料後,如果想要恢復該資料,需要鎖表再去訪問日誌檔案。這樣會造成大量的人力資源浪費,現在的開發不推介這種方式。

軟刪除又叫邏輯刪除,標記刪除,與我們常說的刪除不同,並不是真的從資料庫中將這條記錄去除,而是會設定乙個字段,常見的有:isdelete或者state等字段來標記刪除狀態。當該字段為0的時候為未刪除狀態,為1時則是刪除狀態。

在現實情況中,很多時候我們說的刪除並不是真的是刪除的本意,因為站在使用者的角度來看,並不是一種刪除的狀態:

訂單不是被刪除的,是被「取消」的。

員工不是被刪除的,是被「解雇」的(也可能是退休或者暫時離職了)。

職位不是被刪除的,是被「填補」的(或者招聘申請被撤回)。

所以這些時候,我們並不能真的把記錄刪除,所以軟刪除就出現了。

例:select user.id, user.password from tbl_user where isdelete = 0

實際上,並不是所有的記錄都有必要被一直保留,過多的資料會導致查詢效率低下,資料庫臃腫。

比如許多程式的日誌檔案只會存留最近一周或者最近一月。對於更久的資料需要物理刪除。

那麼有沒有既能實現軟刪除保留需要的資料又能在資料量過大的時候進行物理刪除的辦法呢,答案是有的。

可以為state欄位賦予另乙個意義,當它是2時(當然別的數值也行)不再保留,直接物理刪除。

或者再宣告乙個欄位isrecycle,來表示該記錄需不需要直接刪除。

這樣在定期維護資料庫的同時也可以刪除不再需要的記錄。

軟刪除和硬刪除的處理方法

硬刪除就是傳統的物理刪除,直接將該記錄從資料庫中刪除。但是是人總會犯錯誤,在誤操作刪除了重要資料後,如果想要恢復該資料,需要鎖表再去訪問日誌檔案。這樣會造成大量的人力資源浪費,現在的開發不推介這種方式。軟刪除又叫邏輯刪除,標記刪除,與我們常說的刪除不同,並不是真的從資料庫中將這條記錄去除,而是會設定...

mysql軟刪除與硬刪除 軟刪除和硬刪除的處理方法

硬刪除 硬刪除就是傳統的物理刪除,直接將該記錄從資料庫中刪除。但是是人總會犯錯誤,在誤操作刪除了重要資料後,如果想要恢復該資料,需要鎖表再去訪問日誌檔案。這樣會造成大量的人力資源浪費,現在的開發不推介這種方式。軟刪除軟刪除又叫邏輯刪除,標記刪除,與我們常說的刪除不同,並不是真的從資料庫中將這條記錄去...

mysql軟刪除與硬刪除 軟刪除和硬刪除的處理方法

硬刪除 硬刪除就是傳統的物理刪除,直接將該記錄從資料庫中刪除。但是是人總會犯錯誤,在誤操作刪除了重要資料後,如果想要恢復該資料,需要鎖表再去訪問日誌檔案。這樣會造成大量的人力資源浪費,現在的開發不推介這種方式。軟刪除軟刪除又叫邏輯刪除,標記刪除,與我們常說的刪除不同,並不是真的從資料庫中將這條記錄去...