Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
118
Help us understand the problem. What is going on with this article?
@jonson29

論理削除と物理削除とは

More than 3 years have passed since last update.

論理削除とは

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

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

物理削除

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

論理削除のメリット

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

論理削除のデメリット

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

118
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
118
Help us understand the problem. What is going on with this article?