11 python与mysql 小总结 存储关系

存储关系

总结

先总结一下之前的语句,以及它们在命令中出现的顺序

select distinct *
from 表名
where ...
group by ... having ...
order by ...
limit start, count

执行顺序

  • from 表名
  • where …
  • group by …
  • select distinct *
  • having …
  • order by …
  • limit start, count

关系

现在已经有一个学生表,还有一个科目表,我们再建一个 成绩表,成绩表将学生表和科目表连接了起来。
在这里插入图片描述
根据第3范式,我们只能引用其它表的主键,所以成绩表里的学生应该指的是学生表里的id,成绩表中的科目是科目表中的id。

接下来,还要分析对应关系。
A对B是一对一,那么关系字段在A或B表中都可以;
A对B是一对多,那么关系字段在B表中;
A对B是多对多,则新建一张表存储关系;

比如,
一个学生有多门课的成绩,学生表对成绩表是一对多,所以关系字段(学生id)放成绩表中;
一个科目有多个学生课的成绩,科目表对成绩表是一对多,所以关系字段(科目id)放成绩表中。

注意:关系不能闭合!
就是A和C有关系,A和B有关系,B和C也有关系,那么A其实可以通过B和C产生关系,这就是有闭环了,说明数据产生了冗余。

但是可能A到C更方便呢?那这时候就要考虑断开哪条关系更方便了。

这些都可以在以后,靠经验慢慢积累。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值