数据库表关系详解:一对多、多对多和一对一
创作时间:
作者:
@小白创作中心
数据库表关系详解:一对多、多对多和一对一
引用
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)的。
热门推荐
从基础到算法,《矩阵之美》进阶!九类精妙矩阵算法深度解读
情侣如何规划购房计划?这种规划存在哪些挑战?
猫咪哈欠连连?揭秘五大原因及养护技巧
南山爬山攻略:深圳南山爬山时间及路线推荐
跑步机马拉松训练指南:半程马拉松备赛攻略
如何利用大数据优化出租车运营效率?
草莓的生长环境和条件
服饰品牌出海专题系列研究:复盘海外品牌国际化经验,探索国牌出海路径
美国F-22战斗机,中国空军未来30年的最强空中对手
成熟的关系里,要这样爱自己
揭秘锥形体积的计算奥秘:从公式到应用
激战无极限!走进UFC的狂野世界,全面解析无限制格斗规则
与陌生人对话:增强自信、塑造人格、锻炼沟通能力的秘诀
亦今亦古亦悠长:信阳茶文化的传承与创新
卤猪蹄的美味秘诀:从选材到成品的完整指南
宠物服务包括哪些?宠物服务项目及费用大全
无线游戏手柄:提升游戏体验的必备神器
中老年补钙的方法
锁存器和触发器的概念及比较
身体好不好,低头看看脚!医生解释:脚有3异常,多是4疾病警报
中央海岸水手与墨尔本城的澳超对决:历史数据与近期状态的博弈
崇左大新:百年老街见证边疆巨变
《航海王》动画放送25年宣布停播! 官方亲解原因…复播时间曝
德州扒鸡:五香韵味中的中华老字号传奇
“忠孝节义”俱全的牌坊群,就在安徽歙县棠樾村,来听故事品历史
梅西让位莱万,五大联赛造进球榜仍稳居前二
黑人文化如何影响全球艺术:电影、音乐与文学的深远意义
辟谷术:从历史传说揭秘其科学性与骗局
探索美洲虎的睡眠习惯:全面洞察
上条当麻:《魔法禁书目录》中的幻想杀手