アプリケーションでデータベースの例外をどのように処理しますか?
データを DB に渡す前に検証しようとしていますか、それとも単に DB スキーマの検証ロジックに依存していますか?
ある種の DB エラー (タイムアウトなど) から回復しようとしていますか?
いくつかのアプローチを次に示します。
- DB に渡す前にデータを検証する
- 検証を DB に任せ、DB 例外を適切に処理する
- 両側で検証する
- ビジネス ロジックのいくつかの明白な制約を検証し、複雑な検証を DB に任せる
どのようなアプローチを使用しますか? なんで?
アップデート:
議論が盛り上がって嬉しいです。
コミュニティの回答をまとめてみましょう。
提案:
- 両側で検証する
- クライアント側でビジネス ロジックの制約を確認し、DB にhamishmcn からの整合性チェックを行わせる
- ajmastrean からのDB に迷惑をかけないように、早めにチェックしてください
- 早期に確認して、Will のユーザー エクスペリエンスを向上させましょう
- hamishmcn からの開発を簡素化するために、DB と対話するコードを配置しておきます
- オブジェクト リレーショナル マッピング (NHibernate、Linq など) は、ajmastrean からの制約に対処するのに役立ちます
- Seb Nilsson からのセキュリティ上の理由から、クライアント側の検証が必要です
他に何か言いたいことはありますか?これは検証固有の質問に変換されます。「データベース関連のエラーのベスト プラクティス」の核となる部分がありません。どのエラーを処理し、どのエラーをバブルアップするか?