MSSQLDB内で関係の制約を維持することについてあなたの考えはどうですか。
ASPから.NET環境にシステムを移行しています。これにより、ユーザー/APIからデータベースを抽象化するために機能するビジネスオブジェクトやその他の階層型コーディング手法がもたらされます。新しいアプリケーションには、EntityFrameworkDALの上に明確なAPIがあります。
古いデータベースのアプリケーションDBは大きく、一部のテーブルの目的は、ファイルなどの形式のバイナリデータを含むように変更されます。これらを別々のDBに分割して、での管理を容易にすることを望んでいます。ディスク容量が限られているクライアントサイト。
テーブル間の関係制約を保持することに価値はありますか?
仮定:
- コードがテストされます
- 関係が重要な場合、実行はトランザクションの下で実行されます
- DBへのアクセスはAPIのみを介して行われ、サードパーティによる他のアクセスはサポートされていません。
制約を維持する理由:
- データ構造を適用します
- 結合はより高速ですか?
- クエリプランの支援?
新しい.NETバージョンで制約を削除する理由:
- API/BIZロジックが親/子などの関係を管理すると想定できます。
- DBのセクションを他のカタログに隠す機会を減らします(システムはプラグインアーキテクチャを使用して構築されており、ほとんどのテーブルは分離して動作する可能性があります)
- SQLが制約のINSERT中に追加のチェックを実行する必要があると信じているのは正しいですか?これは、DBの上のAPIがこれを管理している場合は不要な場合がありますか?