顧名思義就是非物理的刪除,資料實質上仍存在但是不再被展示。
通常新增乙個is_deleted的標誌位,true就隱藏,false就正常顯示。
雖然is_deleted=true後不再顯示,但是某些unique欄位可能因此被限制。例如:
1 . 現在存在乙個使用者表, 其中email,phone,username都是unique的,但是因為is_deleted值為true之後代表這個使用者被登出了。但是現在你無法使用相同的email或phone或username再次進行註冊,這是不合理的。
欄位is_unique
is_primary_key
idtrue
true
true
false
username
true
false
phone
true
false
is_deleted
false
false
解決方案:
is_deleted 改為 delete_token, 當資料被邏輯刪除時置乙個隨機串,和id, delete_token繫結聯合唯一。
is_deleted=true之後,將這個資料遷移到專門存放陳舊資訊的資料庫中,如果有後續有相同資料依舊會碰撞。
關於mybatis plus邏輯刪除無效的問題
新增如下註解value代表預設值delval代表刪除時的值 是否刪除 tablelogic value 0 delval 1 tablefield value del flag private boolean delflag 下圖是配置全部 如您知道上一步配置該新增到 那就請忽略下面的 配置 myb...
mysql如何邏輯刪除 mysql邏輯刪除如何恢復
在專案中,一般會遇到這種情況 邏輯刪除以及多關聯不刪除 邏輯刪除 軟刪除 邏輯刪除就是對要被刪除的資料打上乙個刪除標記,通常使用乙個is deleted欄位標示行記錄是不是被刪除 或者使用乙個status欄位代表所謂的 刪除 狀態 在邏輯上是資料是被刪除的,但資料本身是依然存在的。在前端頁面中刪除了...
Mybatis Plus的刪除和邏輯刪除
注 此處的 是在mybatisplus的分頁查詢上進行新增修改的 什麼是物理刪除?簡單來說,物理刪除就是我們日常中使用的delete語句,就是真真正正的從資料庫中刪除掉某條資料。簡單使用 物理刪除 test public void delete 什麼是邏輯刪除?簡單來說,邏輯刪除就是給表中新增乙個字...