【Laravel】如何使用Laravel進行資料庫軟刪除(上)

一、使用場景

有時Database資料庫過多,在查詢時容易往往會拖垮速度,這時就要幫資料庫瘦身。

但瘦身就是所謂的刪資料,只要是刪資料就會有誤刪風險存在,為了解決此問題,可使用軟刪除(邏輯刪除、假刪除)來取代物理刪除(真刪除)

而雖然說文義上是「刪除」,但事實上實際sql的作用是「更新(update)」。

只要在模型裡面設定軟刪除,在一般邏輯裡面只要執行有關該模型的刪除動作,則Laravel會在資料表的deleted_at紀錄刪除的時間,而之後的select動作都會自動幫你忽略這些已被軟刪除的資料,增加撈資料的效率

二、需要deleted_at欄位

在初始migration時,就可以使用 softDeltes() 來預留欄位

三、Model啟用軟刪除功能

只要在Model裡面,寫入 use SoftDeletes; 即可

四、執行刪除

和以往刪除方法一樣即可

!! 注意:軟刪除必須用Model(Eloquent)的方式進行,如果使用Query Builder 則會真的刪除 !!

檢查資料表,會發現兩個欄位都被更新 押了時間戳