数据库表的设计

学习了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的队员。
这样添加队员也方便,检索队员数据也方便。比分这样写是字符串形式,还需要解析,也可以列成两列,直接存成数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前面讲了SQL优化以及索引的使用、设计优化了,那么接下来就到表的设计与优化啦!!!真实地去设计优化单表结构以及讲述...
    JackFrost_fuzhu阅读 9,507评论 2 28
  • 1、引言 数据库设计过程中表、字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理...
    SnowflakeCloud阅读 41,192评论 0 48
  • 触动心灵的10句诗词! 2016-09-12 掌上历史 作者:儒风大家 来源:儒风大家 人生到处知...
    敲冰求火阅读 3,311评论 0 1
  • 远眺微雨落,静坐雨中楼。不知琴声何处起,且弹清水空悠悠。 海南的雨脾气时而温驯,如湖畔的风景,温香软玉。海...
    执仗阅读 4,239评论 0 3
  • 萧伯纳老先生说过一句话很是缺德:“想结婚的就去结婚,想单身的就维持单身,反正到最后你们都要后悔。” 是的,真正能过...
    myaudiobooks阅读 15,771评论 49 407

友情链接更多精彩内容