タグ

postgresqlと論理削除に関するdelegateのブックマーク (1)

  • 履歴テーブルとRETURNING句 - 夜は寝る

    3日連続Postgres小ネタ。別にひとりアドベントカレンダーをやっているわけではない。 TL;DR 論理削除は質的にリレーショナルモデルと相性が悪い 論理削除の一実現手法として削除済テーブル(=履歴テーブル)がある PostgresならRETURNING+CTEでできる 履歴テーブル リレーショナルデータベースにおいて、「データが削除」を表現する方法として、物理削除と論理削除と呼ばれる2つの方法がある。物理削除は、文字どおり「レコード自体を物理的に削除する」ことを指し、論理削除は、「実際には削除しないが、削除されたということをデータを使って表現する」こと。例えば、is_deleted という削除フラグをカラムとして持たせ、これが true になっているレコードは削除済とみなす。 長い歴史を積み重ね成熟してきたリレーショナルデータベースにおいて、いまなお論理削除が議論の種になる。なぜか。

    履歴テーブルとRETURNING句 - 夜は寝る
  • 1