SQL Server で 1 対 1 の関係を実現する: 課題と解決策
SQL Server の制限により、外部キー制約が利用できるにもかかわらず、真の 1 対 1 のリレーションシップを作成しようとすると課題が生じます。
真の一対一の関係の不可能性
本物の 1 対 1 の関係には、2 つのテーブル間に相互の外部キー制約が必要です。 これにより、循環依存関係が作成されます。どちらのレコードも、もう一方のレコードがすでに存在していないと挿入できないため、制約違反が発生します。 これは、「鶏が先か、卵が先か」の問題に似ています。
実用的な代替案
真の 1 対 1 の関係は直接実現できないため、次の代替案を検討してください。
Entity Framework Core 5.0 の考慮事項
SQL Server は本質的に 1 対 1 の関係で null 許容の依存行をサポートしていますが、Entity Framework Core 5.0 ではサポートがいくつか強化されています。 開発者は、依存プロパティを構成して、親エンティティが挿入されたときに依存エンティティが常に存在するようにすることができます。
概要
データベース モデルは 1 対 1 の関係を表すことがよくありますが、SQL Server の実装はより正確には 1 対 (0 または 1) として説明されます。 目的の動作を模倣するには、代替のデザイン パターンとプログラムによる制御が必要ですが、Entity Framework Core 5.0 では、これを管理するための便利な機能がいくつか提供されています。
以上がSQL Server で真の 1 対 1 の関係を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。