個人的には、データベースに外部キーの明示的な宣言がなくても問題はありません。ただし、データベースがどのように使用されているかによって異なります。
私が使用しているデータベースのほとんどは、1つ以上のトランザクションシステムから派生した比較的静的なデータです。私はデータベースに影響を与える不正な更新には特に関心がないので、外部キー関係の明示的な定義は特に重要ではありません。
私が持っていることの1つは、非常に一貫した命名です。基本的に、すべてのテーブルにはIDと呼ばれる最初の列があります。これは、他のテーブルで列が参照される方法とまったく同じです(または、2つのエンティティ間に複数の関係がある場合は、プレフィックスが付いている場合もあります)。また、そのようなデータベースのすべての列には、属性を説明する一意の名前があることを主張しようとしています(したがって、「CustomerStartDate」は「ProductStartDate」とは異なります)。
「鍋の中の料理人」が多いデータを扱っている場合は、外部キーの関係についてより明確にしたいと思います。そして、私は外部キー定義のオーバーヘッドをもっと喜んで持っています。
このオーバーヘッドは多くの場所で発生します。新しいテーブルを作成するときは、「テーブルの作成」または「選択」を使用して、制約の詳細を気にしないでください。更新クエリまたは挿入クエリを実行するときに、問題がないことがわかっていることをチェックするデータベースのオーバーヘッドが必要ない場合があります。ただし、一貫した命名により、問題がないという自信が大幅に高まることを強調する必要があります。
明らかに、私の視点はDBAの視点ではなく、実務家の視点です。ただし、テーブル間の無効な関係は、私(またはチームの他のメンバー)が対処する必要がほとんどないものです。