0

假设我们有一个Player表和一个Team表以及它们之间的一对多关系(aPlayer是 one Teamonly 的成员或 none 的成员)

所以我在表中有一个可以为空的team_id字段Player,引用一个Team表。

但是现在我必须存储有关球员在球队中的位置的额外信息。像:

  • isCaptain
  • number
  • ETC...

实现这一点的正确(正常)方法是什么?

我最好的想法是一张额外的桌子:

Player一对一 (NULL)PlayerTeam多对一 (非 NULL)Team

4

2 回答 2

3

我建议您自己建议制作一张新桌子:

id | player_id | team_id | role_id | number

然后使 player_id 唯一,并且 team_id 不为空。

这将保持玩家表清洁并且您的数据库正常化。

于 2012-08-01T04:01:25.983 回答
0

如果玩家只能拥有一支球队,您可以/应该将该信息直接存储在Player.

另一方面,如果您计划存储历史信息,Player-Team可能会变成多对多,在这种情况下,PlayerTeam连接表将是放置该信息的正确位置。

于 2012-08-01T04:01:35.387 回答