テーブル設計と削除フラグ

データベースのテーブル設計で、削除フラグを項目として持つ場合:

  • 目的
    • レコードの物理削除(delete)は行わない
    • 論理削除(削除フラグON)のみ行うための仕掛け
  • 常に削除フラグを参照しなければならない
    • 通常のデータマッピングの仕組みだとprimary keyしか考慮しない
    • 削除フラグを参照するためには追加実装が必要
      • 面倒くさい!

いっそのことprimary keyの一部にしてしまうと開発が楽かもしれない。

データベースとしての正しい設計と、プログラムの開発容易性が常に一致するとは限らないのが悩ましいところ。落としどころを探すのにいつも困る。テーブルの削除フラグは使用頻度が高いので、解決方法を確立してしまえるとよいかも。