データベースをセットアップしていますが、行を作成/更新する前にチェックする必要がある行間の依存関係が多数あるテーブルがいくつかあります。多くのソースからの max/min/avg/stdev を持つ多くのフィールドがあります。
すべての関係に対して max>=min, avg>=min, avg<=max, stdev>=0 を確認する制約をいくつか作成することにしました。このようにDBに設定すると、データに誤って触れるとエラーがスローされます。このメカニズムは正常に機能します...エラー メッセージがユーザーの観点から見て恐ろしいという事実を除けば、基本的には制約が失敗したことを示し、20 の制約のうちどれが悪かったかを判断するのはユーザーに委ねられます。
制約の例外を確認し、データを実行して問題を見つけることで、クライアント コードでこれを修正できます。そのソリューションには、2 つの場所で検証が行われています...
エラーメッセージを各制約 (データベース内) に割り当て、例外メカニズムを介してそのメッセージを UI にフィルター処理することはできません。ビジネス ロジックでデータ検証を複製せずに、ユーザー フレンドリーなメッセージを UI まで浸透させるメカニズムはありますか? さらに重要なことは、この種の問題に対する基本的な戦略は何ですか?