Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。制約を付与しないDB設計をよく見かけます。制約(とデフォルト値)を付与することに何らかのデメリットがあるのでしょうか。制約を付与することで生じるデメリットは何かあるでしょうか。制約を付与する方がメリットが多いと感じています。ご質問はSQLアンチパターンで言う所の「フィア・オブ・ジ・アンノウン(恐怖のunknown)」に通じる内容ですね。NULL制約を入れるアンチパターンについて言及していたはずです。未入力=nullにする設計変更が入ったため、本番環境のデータ更新を余儀なくされるケースなど、ひと手間かかるアンチパターンです。NULL制約が必要なカラムに制約を設けていないことも挙げられます。('1')で正しい結果が取得できないアンチパターンもあります。NULL制約でアンチパターンを回避しなさいというものだったと記憶しています。制約を付与するデメリットについては、若干insertなどの操作が遅くなることを主張する人もいるかもしれません。検証記事によると、Oracleで100万件のデータをinsertした場合に約0.6%速度が低下するようです。現実の運用では無視できる速度差でしょう。制約を付与しない設計をする主な理由は下記の例が多く感じます。制約?なにそれおいしいの?いずれにせよ必要な制約を付与しないことは、テーブル設計の意図がテーブルの実体に反映されていない状態であり、作曲家がフォルテピアノなどの強弱記号を楽譜に書いていない状態に似ています。開発者や演奏者が好き勝手に解釈をする環境よりも、制約によって不当な処理はできない環境の方が健全ではないでしょうか。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。