【プログラミング学習】論理削除、物理削除とは?その違いは?

こんにちは!CODE CLUB965のKです!

今回は、プログラミングにおいてデータを削除する際の方法である「論理削除」と「物理削除」について書こうと思います。

論理削除と物理削除の違いは分かりますか?
説明できないという方は、ぜひ読んでみて下さい。

論理削除と物理削除

それぞれの削除の仕方については以下の通りです。

■論理削除
実際にはデータを削除せず、削除してるように見せることができます。
「deleted_at(flag)」のようなフラグと呼ばれるカラムを設定することで論理削除を実現できます。

具体的な例を挙げると、
テーブルに「deleted_at」というカラムを追加します。
deleted_atカラムのデフォルト値は「null」になっており、削除した場合、このカラムに削除日時が入ります。
そうすることで、「null」でないカラムは削除とみなすことができユーザーには表示されません。

■物理削除
言葉のままですが、データベースからデータを物理的に削除します。
そのため復元することも削除されたデータを参照することもできません。

論理削除の実装方法については、フレームワークによって違うので具体例はあくまでイメージしやすいように書いているだけなのでご了承ください。

論理削除のメリット、デメリット

考えられるメリットは、

・実際に削除したわけではないので、すぐにデータの復元が可能
・物理削除に比べても処理速度が早い

こんなところです。

逆にデメリットとしては、データはDBから削除されないのでどんどんデータが溜まっていきます。

他にもあるとは思いますが、そこまで大きなデメリットはないと思います。
用途に合わせて、論理削除か物理削除か選びましょう。

最後に

今回は、論理削除と物理削除について書きました。

論理削除と物理削除の違いを理解し、DB設計の際の参考にして下さい。

それでは、また!

Follow me!