美文网首页
数据库表的设计

数据库表的设计

作者: VeyronC | 来源:发表于2017-01-06 00:50 被阅读0次

学习了SQL基本语法后,应该好好研究下数据库表的设计。

  • 建几个表?
  • 表的主键外键怎么设计?

比如:对于一个球赛管理系统,有单打和双打。对于双打,每俩个队员都能组合,所以队员之间的相关性很强。
如果只设计一个表,队员名字字段下直接存比分,则呈现如下情况:

队员1 队员2 队员3 队员4 ... 比赛时间
21 15 1-1
13 21 21 13 1-2
16 21 1-3

表中第二行和第四行示范单打,第三行示范双打。
这思路简单,但是想要添加队员麻烦且增加一个队员就要增加一个字段,也就是一列。这样队员一多很不科学。

更合理的做法应该是:

  • 队员信息建一个表。
用户id(主键) 队员名字 其他信息...
1 playerA ...
2 playerB ...
  • 比赛成绩建一个表(单打和双打分开和一起都行,下面演示合一起的示例)
比赛记录id(主键) 甲方队员1 甲方队员2 乙方队员1 乙方队员2 比分 比赛时间
1 1 2 21:15
2 3 4 5 9 18:21

其中,甲乙方队员字段下存的是队员编号,均是队员信息表中主键的外键,也就是设置4个外键。
表中第一行示范单打,用户id为1的队员和为2的队员单打。
第二行示范双打,用户id为3和4的队员对阵用户id为5和9的队员。
这样添加队员也方便,检索队员数据也方便。比分这样写是字符串形式,还需要解析,也可以列成两列,直接存成数。

相关文章

网友评论

      本文标题:数据库表的设计

      本文链接:https://www.haomeiwen.com/subject/zsdtbttx.html