数据库表关系详解:一对多、多对多和一对一
创作时间:
作者:
@小白创作中心
数据库表关系详解:一对多、多对多和一对一
引用
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)的。
热门推荐
打造一场别开生面的“狂欢派对”:企业年会活动策划全攻略
钟南山:消炎药滥用,我们真的输不起!
互联网医院教你如何正确使用消炎药
哈佛大学推荐:这些天然消炎食物你吃对了吗?
出国留学:掌握多国语言,拓展国际人脉圈
从艺45年颗粒无收的陈佩斯,没想到,仅仅只用一句话实现口碑暴增
新年焕新家,这些小物件让你幸福感爆棚!
中国新年:传统与创新的完美融合
中医教你用汤水解决口干口苦
吃梨和百合,告别口干口苦!
压力导致口干口苦?中医专家教你这样缓解
黄连治口干口苦,网友热议显奇效
负债二十万的翻身故事
农村自建房卫生间防水攻略,你get了吗?
农村自建房卫生间设计:健康新趋势
绍兴农村自建房新趋势:卫生间与园林设计的完美融合
开源项目有哪些著名案例
小鹏车主打卡天一阁:宁波历史文化自驾游
家的味道:手把手教你制作经典红烧牛肉面
文旅部推荐的这些湖南美食,有你家乡的吗?
蛇年新春祝福语大集合:让你在社交场合如鱼得水!
春节祝福语大比拼:总有一款适合你!
新年穿红内衣,道教信仰有讲究!
认知牢笼下的职场生存法则
塔拉·韦斯特弗:一个打破认知牢笼的真实故事
揭秘《精忠岳飞》:宋徽宗为何不提宋江?
方腊宋江起义背后的北宋末年真相
STAR法则详解及举例分析:你真的了解STAR法则吗?
解锁新视角:用图表讲述你的年度故事
金鱼的养殖方法和注意事项