0

PlayerテーブルとテーブルがありTeam、それらの間に 1 対多の関係があるとします (aPlayerは one Teamonly のメンバーであるか、none のメンバーです)。

したがって、テーブルを参照して、テーブルにnull可能なteam_idフィールドがあります。PlayerTeam

しかし、チーム内でのプレーヤーの位置に関する追加情報を保存する必要があります。お気に入り:

  • isCaptain
  • number
  • 等...

これを実装する正しい(通常の)方法は何ですか?

私の最良のアイデアは、追加のテーブルです。

Player1 対 1 (NULL)PlayerTeam多対 1 (非 NULL)Team

4

2 に答える 2

3

新しいテーブルを作成する独自の提案をお勧めします。

id | player_id | team_id | role_id | number

そして、player_id を一意にし、team_id を null にしないようにします。

これにより、プレーヤー テーブルがクリーンに保たれ、データベースが正規化されます。

于 2012-08-01T04:01:25.983 に答える
0

プレーヤーが 1 つのチームしか持てない場合は、その情報を に直接保存できます/保存する必要がありますPlayer

一方、履歴情報を保存する場合は、多PlayerTeam多になる可能性があります。その場合、PlayerTeam結合テーブルはその情報を配置するのに適した場所になります。

于 2012-08-01T04:01:35.387 に答える