您的位置:首页 > 数据库

数据库中多对多关系及其实现

2016-03-07 15:13 323 查看
事物A中的一条记录可以对应事物B中的多条记录,而事物B中的一条记录也可以对应事物A中的多条记录。例如:学校中,一个班级可以有多名任课老师,而一名老师可以教多个班级。这时,可以引入一个表C来模拟多对多关系。

SQL语句:

--班级表
create table banji
(
banji_id int primary key,
banji_num int not null,
banji_name nvarchar(100)
)

--教师
create table jiaoshi
(
jiaoshi_id int primary key,
jiaoshi_name nvarchar(200)
)

--第三张表 用来模拟班级和教师的关系
create table banji_jiaoshi_mapping
(
banji_id int constraint fk_banji_id foreign key references banji(banji_id),
jiaoshi_id int foreign key references jiaoshi(jiaoshi_id),
kecheng nvarchar(20),
constraint pk_banji_id_jiaoshi_id primary key (banji_id,jiaoshi_id,kecheng)
)

--删除表
drop table banji_jiaoshi_mapping


数据库关系图:



注:本文参考了郝斌老师的SQL教程,也加入了自己对SQL的一些理解,有写的不对的地方希望大家能够指出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: