https://qiita.com/jonson29/items/4743409eda08fcdf5410

論理削除と物理削除とは

この記事は最終更新日から1年以上が経過しています。

論理削除とは

実際にはデータを削除せずに、削除されたと見なすフラッグと呼ばれるカラムを設定することでユーザーには削除しているかのように振る舞うことができることをさします。

例えばtweetsテーブルというものがあった時に、
そのテーブルにdeleted_flagというboolean型のカラムを追加しておきます。
この状態のときdeleted_flagカラムのデフォルト値はnullです。
こうすることによって、ユーザーにtweetの削除ボタンが押された時にdeleted_flagに1という値がセットすることで、その削除されたツイートとして扱うことができるのです。

物理削除

実際にSQLでDeleteされることをさし、データベースからも削除されます。そのため復元したり削除されたデータを参照することはできません。

論理削除のメリット

先ほどの例でも伝えたとうり、削除したかのように振る舞うだけなのですぐにデータの復元を実現が可能となります。また物理削除に比べても処理速度が早いことがメリットです。

論理削除のデメリット

・データベースにNUllというデータを作りたくない。(これはどうにかしたら解決可能だとは思いますが)
・where句での絞り込み検索を行うときにフラッグの条件を追加する必要がある。


+ Recent posts