データ検証を完全にデータベースエンジンの制約に委任するのは良い習慣ですか?
アプリケーションからのデータを検証しても、別のソフトウェア(おそらく別のチームによって別の言語で書かれたもの)からの無効な挿入を防ぐことはできません。データベース制約を使用すると、無効な入力データについて心配する必要があるポイントを減らすことができます。
データベースとアプリケーションの両方で検証を行うと、アプリケーションの数を知っている人のコードを更新する必要があり、人的エラーの可能性が高くなるため、メンテナンスが面倒になります。
自由ソフトウェアプロジェクトのコードを見ると、これがあまり行われていないようです。