「論理削除」と「物理削除」の違い
予備知識
| 用語 | 意味 |
|---|---|
| 物理 | 「物理○○」という形で出てくることが多く「実際の○○」の意味 |
| 論理 | 「論理○○」という形で出てくることが多く「見かけ上の○○」や「扱い上の○○」の意味 |
それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| 論理削除 | データ自体は残っているけど、扱いとしては削除済みにすること |
| 物理削除 | データ自体を消す削除のやり方 |
似ているところ
どちらも「データの削除」です。
この世からデータを葬り去ります。
違うところ
本当にデータを消すかどうかが違います。
論理削除は「削除したことにする」です。
データ自体は残っています。
そのため「あっ、削除したのは間違いだった」と思ったら復活させられます。

物理削除はデータ自体を消してしまいます。
そのため「あっ、削除したのは間違いだった」と思っても復活させられません。
みなさんが「削除」と言われて思い浮かぶのは、こっちの削除でしょう。

例えば、そうですね。
ピヨ子さんは凄腕の暗殺者(アサシン)です。
報酬次第でどんな対象(ターゲット)でも暗殺します。

ある日のことです。
ピヨ子さんの元に依頼が入りました。
依頼内容は「ピヨ太の存在を、この世から消してくれ」です。

報酬が安かったのでやる気が出なかったピヨ子さんは、ピヨ太君の戸籍を消しました。

ところがどっこい、依頼人は満足してくれませんでした。
「もっとお金を出すから、ちゃんと消してよ」と言います。

報酬が上がってやる気が出たピヨ子さんは、ピヨ太君をプスっと刺しました。
ピヨ太君は天に召されました。

この話において、戸籍を抹消したのが論理削除です。
ピヨ太君は引き続き生きていますが、公的には存在が消されちゃいましたよね。

プスっと刺して、息の根を止めたのが物理削除です。
ピヨ太君は、この世から消え去りました。

暗殺の話で終わってしまうのも心苦しいので、データベースの例も挙げておきましょう。
例えば、そうですね。
・ID
・名前
・削除フラグ
の3つの項目を持つ表が ありました。

この表の使い方ですが、普通のプログラムでデータを削除するときは「削除フラグ」の項目に「1」を設定します。

これでプログラムから見たら削除された扱いになります。
データを取得するときは、条件に「削除フラグが『1』ではないやつ」を付けることになっているからです。

普通のプログラムとは別に、メンテナンス用のプログラムもあります。
メンテナンス用のプログラムは「削除フラグ」の項目に「1」が設定されているデータを実際に削除するのが仕事です。

この話において「削除フラグ」の項目に「1」を設定するのが論理削除です。

「削除フラグ」の項目に「1」が設定されているデータを実際に削除するのが物理削除です。

個人的な使い分け
基本的に、削除するときは論理削除にします。
物理削除にはしません。
間違って消したときに戻せないとヤバいからです。
あとは論理削除して一定期間経過したデータ(もう使わないことが確定しているデータ)を別途、物理削除します。






