次のフィールドを持つテーブルがあるとします。
- リーグID
- マッチID
- 一部のデータ
リーグでは多くの試合が開催されます。通常、各リーグは独自のローカル データベースを使用するため、LeagueID フィールドはこのローカル データベースのすべてのレコードで同じになります。年に一度、リーグはそのデータを各国当局にアップロードします。その後、同じ MatchID を持つ試合を識別するために LeagueID が必要になります。
(EF Fluent API を使用して) 複合主キーを実装する最良の方法は何ですか?
Entity<Match>.HasKey(match=>new {match.LeagueID,match.MatchID})
また
Entity<Match>.HasKey(match=>new {match.MatchID,match.LeagueID})
人間の目には、リーグ - 試合の順序は論理的であり、特定のリーグの試合がまとめて保持されます。しかし、複合キーを作成するときは、パフォーマンス上の理由から、最も識別力の高いフィールドを最初に使用することが重要であることを理解しました。