Timesheet アプリケーション用の Oracle データベースを設計しています。テーブル(マスターとチャイルド)に外部キー制約が本当に必要かどうか疑問に思っています。
理論的には、テーブルに適切な参照整合性を持たせることは良いことですが、本当に必要なのでしょうか?
外部キーは、FK の整合性をチェックする必要があるため、すべての DML 操作でデータベースを特別に機能させると聞きました。これにより、パフォーマンスが低下する可能性があります。しかし、一方で、子テーブルに新しい行を挿入する前に主キーが削除された場合に役立ちます。
タイムシート アプリケーションの主な問題はパフォーマンスであり、月末には (おそらく同時に) 約 250 人がタイムシートを埋めます。
テーブルに外部キー制約がない場合、毎回子テーブルに新しいレコードを挿入する前に、主キーがマスターテーブルに存在するかどうかを最初に (ストアドプロシージャで) チェックする必要がありますか?
追加:過去に、私は多くの経験豊富な Oracle データベース開発者と協力してきましたが、テーブルに外部キー制約を使用したことはありません。