タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

設計と仕様に関するdrumscoのブックマーク (1)

  • 妥当性検査をDB側に集約する - 設計者の発言

    テーブルフィールドの妥当性検査をどこに配置するかは、DBシステムの開発において重要な問題である。大別してプログラム側に置く流儀とDB側に置く流儀とがあるが、基的に後者が正しい。 なぜなら、どのプログラムで実行されるかに関わらず同じ検査がなされるとしたら、その仕様はフィールド固有の属性とみなされるからだ。たとえそのフィールドに対する妥当性検査を実行するプログラムが1個しかないとしても、そのように考えるべきである。フィールド固有の属性については、テーブル側の定義情報を読めばひととおりわかるようでなければいけない。以前にも書いたように「カエサルのものはカエサルへ、DBのものはDBへ」の原則で、フィールドの扱われ方に関する仕様はテーブル上に集約したほうがよい。 では次のような妥当性検査があったらどうだろう。「テーブルA上の関連レコードのフィールドBの値がナントカの場合、テーブルC上のフィールドD

    妥当性検査をDB側に集約する - 設計者の発言
    drumsco
    drumsco 2010/03/09
    webapplicationやconsole command、C/S物など多数の構成を取る場合、データーを守るための最低限、且つ共通項についてはDBで実装しておかないといけないよね。
  • 1