答案 0 :(得分:1)
Squad
表应该是一个链接表,可以在Players
和Team
之间创建多对多关系。由于每个播放器/团队组合只能发生一次,因此Team_ID
和Player_ID
列都应成为主键的一部分。
Squad
应位于两个关系的n侧。它的名字可能应该是Membership
。
为什么需要单独的PlayerStatistics
表?显然,它将与Squad
相同的Player_ID / Team_ID组合的统计信息存储起来。该表的字段应该转到Squad
表。
Positions
是不是每个会员?每个成员一个职位,即一个职员在每个团队中有一个定义的职位,在这种情况下,Position_ID
应该是Squad
中的一列。
Team
和MatchStatistics
之间应该有两种关系。一个在Home_team_ID
上,一个在Away_team_ID
上。
或者,您可以将PlayerStatistics
与Player
和Match
相关联,从而存储每个玩家在每个游戏中所做的事情。然后,您将通过适当的查询检索整体播放器统计信息或每个团队的玩家统计信息。
答案 1 :(得分:0)
除非你有一些奇怪的要求,否则我会介意。
通过这种设计,小队仅限于一名球员。
Team_ID与统计信息(非播放器)相关联。如果您想要一个与单个团队相关联的玩家,那么请在玩家中进行。然后你应该将统计数据与玩家合并。
两个表之间PK到PK的链接很少是正确的设计。
如果您希望玩家能够在多个团队中玩,那么拥有PlayerID,TeamID是统计数据中的复合键。
您需要披露正确审核的要求。小队显然搞砸了,但你没有说明小队的目的。