mysql联合外键做主键6_数据库联合外键做主键(解决多对多关系)

多对多概念:一个学生可以学好几门课程,一门课程可以被好几个学生学习,站在某一个学生的角度就对应了多个课程,站在课程那里,就对应了多个学生,所以学生和课程就是一个简单的多对多关系。

在数据库中我们要解决这种多对多关系的应用,首先创建一个学生表,如

create table stu (

stu_id int primary key,

sty_name varchar(20)

);

然后再创建一个课程表

create table book(

book_id int primary key,

book_name varchar(20)

);

最后我们再创建一个应用表,这个表中把学生表的主键和课程表的主键设置为应用表的联合主键

create table yingyong (

stu_id int primary key(stu_id,book_id),

book_id int

);

当我们需要保存“张三学了语文”这条数据时候就只要把张三的ID和语文的ID保存就可以了,取的时候也同样。这样就解决了数据库中的多对多的关系数据。

再顺便说一下:拥有外键的表是子表,父表是它自己的主键被任何子表给引用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值