一、使用場景
有時Database資料庫過多,在查詢時容易往往會拖垮速度,這時就要幫資料庫瘦身。
但瘦身就是所謂的刪資料,只要是刪資料就會有誤刪風險存在,為了解決此問題,可使用軟刪除(邏輯刪除、假刪除)來取代物理刪除(真刪除)
而雖然說文義上是「刪除」,但事實上實際sql的作用是「更新(update)」。
只要在模型裡面設定軟刪除,在一般邏輯裡面只要執行有關該模型的刪除動作,則Laravel會在資料表的deleted_at紀錄刪除的時間,而之後的select動作都會自動幫你忽略這些已被軟刪除的資料,增加撈資料的效率
二、需要deleted_at欄位
在初始migration時,就可以使用 softDeltes() 來預留欄位
三、Model啟用軟刪除功能
只要在Model裡面,寫入 use SoftDeletes; 即可
四、執行刪除
和以往刪除方法一樣即可
!! 注意:軟刪除必須用Model(Eloquent)的方式進行,如果使用Query Builder 則會真的刪除 !!
檢查資料表,會發現兩個欄位都被更新 押了時間戳