ASP.NETとEntityFrameworkを使用してWebサイトを作成しています。私は現在、多対多の関係のマップテーブルを持っています...たとえば、ユーザーとサッカーチームを考えてみましょう。それで:
ユーザー
チーム
UserTeams
パート1:マップテーブルの主キーに複合キーを使用するのがベストプラクティスですか?言い換えると:
UserTeamsテーブル
PKUserIdPK TeamId
PreferenceId
_ _
パート2:注意点は私も別のテーブルを持っているということです。これを「UserTeamPredictions」と呼びましょう。これは、特定のチームの各年のユーザーの予測を保存します。そのテーブルには、マップテーブルを指す外部キーがあります。したがって、次のようになります。
UserTeamPredictionsテーブル
PKUserTeamPredictionIdFK UserId
FK TeamId Prediction
PredictionYear
_
これはEntityFrameworkで正常に機能しているようですが、Telerikのように使用しているサードパーティのコントロールでリレーションシップを参照するときに問題が発生しました。理想的なデータ設定ではないかもしれませんが、データバインディングなどを使用してコードで操作しやすいように、テーブルの構造/関係を変更する必要がありますか?
変更は、整数の主キーをUserTeamsマップテーブルに追加し、UserTeamPredictionsテーブルが現在のように複合キーを介してではなく、キーを直接参照できるようにすることです。
UserTeamsテーブル
PKUserTeamIdFK UserId
FK TeamId
PreferenceId
_ _
UserTeamPredictionsテーブル
PKUserTeamPredictionIdFK UserTeamId Prediction
PredictionYear
_
どう思いますか!?