有 2 个表,Team 和 Game,其中 Team 有一个团队名称和一个团队 ID,而游戏有 2 个团队 ID(团队 1 和团队 2)和比赛的得分。然后,您在 Game 和 Team 表之间有外键(为了完整性)。这将以最小的模式和非常简单的结构反映谁演奏了谁以及得分是多少。
Team
|-------------------------|
| Primary (int)| id |
| (chr)| name |
|-------------------------|
Game
|-------------------------|
| Primary (int)| team1 |
| Primary (int)| team2 |
| (int)| score1 |
| (int)| score2 |
|-------------------------|
因此,一些示例数据如下所示:
Team
|------------------|
| id | name |
|------------------|
| 1 | Blue Devils |
| 2 | Cardinals |
| 3 | Fish |
| 4 | Lemmings |
|------------------|
Game
|---------------------------------|
| team1 | team2 | score1 | score2 |
|---------------------------------|
| 1 | 2 | 7 | 8 |
| 1 | 4 | 2 | 25 |
| 2 | 3 | 8 | 2 |
| 3 | 4 | 17 | 18 |
|---------------------------------|
该数据表明球队 1(蓝魔)以 7 比 8 的比分对阵球队 2(红雀)。其余数据类似。
如果您不需要跟踪团队名称,则可以不填写该字段,但这通常是有用的信息。
因此,使用此模式,您将获得特定团队的分数,查询如下
SELECT * FROM Game g
INNER JOIN Team t on t.team1 = g.id
如果需要,您还可以添加其他信息,例如比赛发生的时间(日期),以及任何其他信息,例如有关比赛或球队的其他统计数据。