MySQL 表与表之间建立关系

本文探讨如何在MySQL中创建表与表之间的关系,通过拆分表、建立关联及深度关联实现数据结构优化,避免冗余并提高数据操作效率。当遇到多对多关系时,介绍了使用中间表作为连接桥梁的方法,并以书与作者、客户与学生为例进行说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  引子:如下图是一张非常寻常的表格,在以前的工作中实常会制作类似的表格,但是今天的数据库内容,将我之前这种传统的制表思路上升了一个层次;

今天核心的内容就是怎样让表与表之间产生关系,在思考这个问题的时候,我们可以回顾之前学习python时,当一个任务涉及到很多的功能时,我们为了

让程序的结构更清晰,扩展性更高,我们选择用函数>>模块>>包 的方式将功能层层拆分,最终让程序结构上升到新的层次,而且极大的降低了代码的冗

余。再回到这张表,如果说总共就这几个人,这张表没什么问题,但是假设我们拥有100w的用户,此时表中的 def_name,dep_desc就有些冗余了;此外

这种表的形式也非常不利于后期数据的取值和修改。

  实现思路:把内容多出现重复的字段拎出来制作成具有id的新表,将两张表建立联系。

 一对多

 

 

  第一步 拆分表

 

  第二步 建立关联(通过dep_id字段链接两张表)

注意:1.必选要先建被关联表;

     2.新增数据的时候,要先增被关联表中的数据;  

 

  

 

create table dep(
    id int primary key auto_increment, # id设置为主建,自增
    dep_name char(16),
    dep_desc char(64) # 注意最后一个括号后面一定不要加逗号!
);
create table emp(
    id int primary key auto_increment,
    name char(16),
    gender enum('male','female','oth
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值