データベースの論理削除と物理削除

データベースからデータを削除するには、「論理削除」と「物理削除」2種類の方法がありまります。

物理削除とは文字通りDELETE構文を利用しデータベースよりレコードを完全に削除してしまうことをです。

論理削除とは、データベースにフラグとなるフィールドを作成しておき、削除時に削除フラグを立てることにより、仮想的に表示時に見えなくしてしまう処理になります。

私がデータベース設計を行う際には論理削除を採用するのですが、論理削除のメリットデメリットをまとめておきたいと思います。

論理削除のデメリットが、物理削除のメリットになります。

論理削除

メリット

デメリット

うーん。
あんまりメリットが見出せなかったが、「削除されたデータの復元」がデメリットを理解したうえで、私が論理削除を採用するに値するメリットになっています。

誤ってDBからデータが削除されるケースとして、「顧客が誤って削除する」と「システムのバグで削除する」のが考えられます。

基本的に論理削除は「顧客が誤って削除する」に対応する為に採用しているのではないです。
(サービスやオプションとして誤って削除したデータの復元を行う場合もあるのですけども)

システムのバグで削除された場合に調査、復元が容易だということで採用しています。

理想はケースバイケース(処理ベースではなく案件ベース)で使い分けるのが良いと思うのですが、他のプログラマーさんはどのように書いてるのでしょう?

ちょっと気になったのでエントリーしてみました。コメントやトラックバック、ソーシャルブックマークでご意見いただけたらうれしいです。

スポンサードリンク

«feed meterに参加しました。 | メイン | Slice Imageでサイトを高速化»