码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2014-05-09 20:19:47      阅读:360      评论:0      收藏:0      [点我收藏+]

标签:c   int   数据   a   name   应用   

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

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

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保存就可以了,取的时候也同样。这样就解决了数据库中的多对多的关系数据。
再顺便说一下:拥有外键的表是子表,父表是它自己的主键被任何子表给引用。

 

数据库联合外键做主键(解决多对多关系),布布扣,bubuko.com

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

标签:c   int   数据   a   name   应用   

原文地址:http://www.cnblogs.com/ganglianhuo/p/3718999.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!