数据库——表格之间的关系(表格之间的连接和处理)

数据库表格之间经常存在各种关系:

一对一一对多多对多

1.一对一 ------ 丈夫表,妻子表为例

连接方式一: 合并为一张表 这种方式对于一对一来说最优

**连接方式二:**在其中一张表内加入一个外键,连接另一张表

连接方式三 :单独创建一张表(不常用)

这三种连接方式从上到下,越来越复杂

2.一对多 ------ 班级和部门,老师和学生表

连接方式一 :合并为一张表 这种方法对于那个"一"方会存好多遍 造成数据冗余

**连接方式二:**在多方加入外键(多方为学生表) 这种方法没有数据冗余(重复的1,2,3表示关系,并不是冗余),在一方(班级表)加入外键,也会造成数据冗余

这种处理是一对多的最优处理结果

连接方式三:单独创建一张表 没有冗余 但是运行较为复杂

3.多对多 ------ 班级和部门,老师和学生表

**连接方式一:**合成一张表 不好 都会造成数据冗余

**连接方式二:**添加外键,不论存在哪一方,都会造成数据冗余

连接方式三 : 新建一张表,不会造成冗余,对于多对多来说单独创建一张表为最优方式

相关推荐
Skilce9 小时前
ZrLog 高可用部署
运维·服务器·数据库·阿里云·maven
indexsunny12 小时前
互联网大厂Java求职面试实战:微服务与Spring生态全攻略
java·数据库·spring boot·安全·微服务·面试·消息队列
沪漂阿龙12 小时前
别再让数据库“吃”脏数据了!一文讲透MySQL约束,从入门到精通
数据库·mysql
2401_8735449213 小时前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
虾..14 小时前
多路复用 --- select系统调用
服务器·数据库·sql
杨云龙UP14 小时前
mysqldump逻辑备份文件恢复总结:全库恢复、单库恢复,一篇讲明白
linux·运维·服务器·数据库·mysql·adb
ybwycx14 小时前
mysql重置root密码(适用于5.7和8.0)
数据库·mysql·adb
色空大师15 小时前
【网站搭建实操(一)环境部署】
java·linux·数据库·mysql·网站搭建
亚历克斯神15 小时前
Flutter for OpenHarmony: Flutter 三方库 mutex 为鸿蒙异步任务提供可靠的临界资源互斥锁(并发安全基石)
android·数据库·安全·flutter·华为·harmonyos
IAUTOMOBILE15 小时前
用Python批量处理Excel和CSV文件
jvm·数据库·python