タグ

設計とdatabaseに関するbasementjaxxのブックマーク (3)

  • フラグ項目に NOT NULL 制約を付与しない理由

    開発者の経験上、NULL を格納する必要のない項目には NOT NULL 制約を付与する方がメリットが多いと感じています。 ご質問はSQLアンチパターンで言う所の「フィア・オブ・ジ・アンノウン(恐怖のunknown)」に通じる内容ですね。 (手元に資料がないのでうろ覚えですが)フィア・オブ・ジ・アンノウンでは、NULLが必要な項目にNOT NULL制約を入れるアンチパターンについて言及していたはずです。 例えば男性=1 女性=2のカラムに未入力=unknownを設定していたところ、ある日入力欄に「不詳」が追加されて不詳=unknown 未入力=nullにする設計変更が入ったため、番環境のデータ更新を余儀なくされるケースなど、ひと手間かかるアンチパターンです。 別のアンチパターンとして、NOT NULL制約が必要なカラムに制約を設けていないことも挙げられます。 有効フラグが立っていないレコ

    フラグ項目に NOT NULL 制約を付与しない理由
  • DELETE_FLAG を付ける前に確認したいこと。 - Qiita

    DELETE_FLAG という思考停止フラグ DELETE_FLAG という boolean の列が DB 設計でよく話題になります。 論理削除という言葉で上手に論理武装し、スキを見せるとすぐに入れたがる人がおり、 一方でそれにつよく反対する人もいます。 自分の経験としては、広義の論理削除はありえると思いますが、実現方法が DELETE_FLAG だとなった時、それはあまり考えてないでなんとなくパターンとして盛り込んでる場合が多いと感じます。 ただし、設計に唯一の答えは無いので、もしかしたらそれが妥当な設計である場合があるかもしれません。 今回は「DELETE フラグがなぜダメなのか?」などという話をするつもりも、アンチパターンだと断言するつもりもありません。 問題は、仕様をきちんと把握すると、「最適な設計は DELETE_FLAG ではない」という場合が有って、その場合は、その最適な設計

    DELETE_FLAG を付ける前に確認したいこと。 - Qiita
  • なぜ、人はSQLをループさせたがるのか

    設計者にもうれしいO/Rマッパ「DBFlute」 7月13日、DB2の勉強会などを開催するコミュニティ「ClubDB2」が開催されました。冒頭のライトニングトークではフリーランスのオープンソースプログラマであり、DBFluteのメインコミッタでもある久保雅彦さん(写真)がDBFluteをアピールしました。 DBFluteを端的に説明すると、「DB設計者にもうれしいO/Rマッパ」だそうです。ただ、O/Rマッパを乱用されるとパフォーマンスに悪影響を及ぼしかねないので、データベース管理者からすると「えーやめてー」と忌避されがちです。しかし、DBFluteはデータベースの変更に強いという特徴があります。カラムの追加など、データベースの変更履歴を自動生成し、開発環境にスムーズに反映させることができます。それゆえにプログラマには当然のこと、管理者にも役に立つO/Rマッパと言えます。 また久保さんは「デ

    なぜ、人はSQLをループさせたがるのか
  • 1