数据库表关系详解:一对多、多对多和一对一
创作时间:
作者:
@小白创作中心
数据库表关系详解:一对多、多对多和一对一
引用
CSDN
1.
https://blog.csdn.net/m0_74386799/article/details/139477640
在项目开发中,进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,各个表之间的结构基本上分为三种:一对多,多对多,一对一。
一对多
例如,一个学校可以有多个学生,而一个学生对应一个学校
实现:在多的一方建立外键,指向一的一方的主键。
多对多
例如,一个学生可以选修多门课程,一门课程也可以有多名学生。
实现:建立第三张中间表,中间表至少包含两个外键,分别关联两边的主键。
示例:新创建一张course表,使其与之前的user表连接,这中间需要用一张中间表进行连接。
CREATE table course(
id int auto_increment primary key comment '主键id',
course_name varchar(10) comment '课程名称'
)comment '课程表';
insert into course value (null,'java'),(null,'vue'),(null,'MySQL');
create table student_course(
id int auto_increment comment '主键' primary key ,
studentid int not null comment '学生id',
courseid int not null comment '课程id',
constraint fk_courseid foreign key (courseid) references course(id),
constraint fk_studentid foreign key (studentid) references user(id)--添加外键
)comment '学生中间表';
此时已经成功连接上两张表,在DataGrip里可以更直观的看到这些表的联系。
右击中间表点击Diagrams,选择Show Diagram
一对一
例如学生与学生信息的关系。
关系:一对一的关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另一张表中,以提升操作效率。
实现:在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一(UNIQUE)的。
热门推荐
手机首进「国补」:按售价15%给予补贴,电商平台蓄势待发
为什么不建议养迷你鹦鹉鱼
义务教育阶段学生因身体状况休学的处理流程
日夜颠倒怎么调整回来?一文详解作息调整方法
PFAS是什么?浅谈它对环境和健康的影响
Excel中复制内容怎么粘贴
如何用 H5 来开发安卓手机 App 软件
C语言中如何组合三个数
当代文学流派代表人物排行榜:莫言上榜,多位获得茅盾文学奖
AI 是如何利用语言技巧「操纵」人类的?
重温经典港片:《新龙门客栈》
最新进展!落户郑州航空港区的这些好大学,规划建设如何了?
银行的贵宾客户服务有哪些?
甲状腺结节穿刺活检,做还是不做?一文读懂其必要性和注意事项
霍华德第10!美媒评NBA历史最佳防守者:追梦13罗德曼5 邓肯排第3
线控转向系统的关键技术和集成化设计研究进展
秦始皇发明的2个“逆天”武器:领先世界千年和至今无法超越
央行连提两次“择机降准降息”,A股明天怎么走?最新券商研判→
胡子长的太快怎么办
心血管疾病有哪些?
老鼠:人们的敌人还是矿工的保护神?探索万物的两面性
治疗皮肤病最好的中药是什么
深圳樱花7选,最佳深圳赏樱地点大公开!
借助AI,人类可以到达“彼岸” 吗?
陪葬天团:古代“高危职业”太医怎么一边上班,一边保命?
主旋律短篇故事受年轻人青睐,知乎盐言故事持续开拓创新品类
互感器常规试验详解:保证电力安全的关键技术
强势玻利瓦尔对人民币汇率如何影响贸易
自学唱歌怎样练声
最受欢迎的紫砂壶12种器型,你喜欢哪一种?