每场比赛有14名球员。
我目前拥有它,所以我在匹配表中输入了14个条目,如下所示:
matchID bookingID playerID
1 1 1
1 1 2
1 1 3
1 1 4
等
这是否可以,或者更喜欢这样做:
matchID bookingID playerID1 playerID2 playerID3 playerID4
1 1 1 2 3 4
答案 0 :(得分:0)
否,此上下文中的“规范化”意味着您需要创建多个表格,Match
,MatchPlayer
,Booking
和Player
彼此相关在他们的主键上。例如:
Match
表:
MatchID BookingID
---------------------
PlayerMatch
表:
MatchID PlayerID
-------------------
Booking
表:
BookingID
----------
Player
表:
PlayerID
--------
现在MatchID
是Match
表中的主键,它是MatchPlayer
表中的外键,PlayerID
是Player
中的主键。 {1}}表,它是MatchPlayer
表中的外键。这在比赛和球员之间创造了“多对多”的关系,因为可以有多个比赛,玩家可以参加,并且在给定的比赛中显然有多个球员。
此外,BookingID
是Booking
表中的主键,它是Match
表中的外键,在这种情况下,有一个“一对多”预订和比赛之间的关系,因为每次预订可以有多个比赛。
例如,这种方法允许您为每个玩家提供一个记录,这样您就可以获得有关玩家的其他信息,而无需在Match
表格中不必要地重复该信息,例如名字,姓氏,年龄,性别等。同样,它允许您拥有一个记录,其中包含有关预订的信息,如日期,地点名称等。
鉴于您当前的示例,由于您没有关于播放器和预订的任何其他信息,因此似乎没有必要进行规范化,但似乎您的架构可以快速扩展以涉及更多信息。