首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >体育评分系统的数据库设计

体育评分系统的数据库设计
EN

Stack Overflow用户
提问于 2016-08-20 16:03:45
回答 2查看 2.5K关注 0票数 0

我正在为我的朋友做数据库的评分系统。我有一张游戏的桌子,第二张桌子上有的体育名称(足球,足球,足球)。我想存储游戏的分数,但我不知道如何设计数据库,以满足具体的分数需求。

例如,

足球比分- 1:2,2:2 (上半场和下半场)

特尼斯牌- 6:4,7:6

弗罗巴尔- 1:0,3:0,3:2 (游戏的第1,2,3节)

我需要这个分数链接到游戏表,但是我需要特定的表列来存储每个游戏的分数。

我想到的

  1. 多个表和外键,但这在mysql中是不可能的。
  2. 然后,我考虑将数据存储在json中的一行中,然后根据体育运动具体地解析数据,但这可能不是很好的解决方案。

在我看来,唯一的问题是:

如何创建表/s,根据运动类型以不同格式存储分数?

谢谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-20 17:34:31

例如:

代码语言:javascript
复制
match_id | period_id | team1_score | team2_sore
       1 |         1 |           1 |          2
       1 |         2 |           2 |          2
       2 |         1 |           6 |          4   
       2 |         2 |           7 |          6   
       3 |         1 |           1 |          0
       3 |         2 |           3 |          0
       3 |         3 |           3 |          2
票数 0
EN

Stack Overflow用户

发布于 2016-08-20 17:38:23

您提到了MySQL,因此您似乎希望开发一个关系数据库。

第一步是定义关系。根据你的例子。

  1. 一场比赛只有一项运动。
  2. 一项运动有零个或更多的游戏。
  3. 一个游戏有一个或多个时间段分数。
  4. 一段时间的分数只有一场比赛。

基于这些关系,我们可以定义3个表。

代码语言:javascript
复制
Sport
-----
Sport ID
Sport name
...

Game
----
Game ID
Sport ID
Game name

PeriodScore
-----------
PeriodScore ID
Game ID
Period
Score

主ID字段称为盲键。它们是自动递增的整数。他们唯一的目的是把比赛和比赛联系起来,把比赛的时间和比赛成绩联系起来。否则,他们根本没有任何意义。主ID字段是它们各自表的主(群集)键。

游戏表中的运动ID是一个外键。这个关键点回到了运动表,这样你就可以得到运动的名字了。您可以创建一个唯一的索引(运动ID,游戏ID),如果你想要一个特定运动的游戏列表。

PeriodScore表中的游戏ID是另一个外键。您必须在(游戏ID,PeriodScore ID)上创建一个唯一的索引,以便您能够以正确的顺序检索期间分数。

当您想要创建一个关系数据库时,首先定义关系,然后再经过一个归一化过程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39056154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档