<>1.多表之间的关系

1.分类

一对一人和身份证
一对多员工和部门
多对多学生和课程
2.实现关系
一对一:可以在任意一方添加唯一外键指向另一方的主键。
一对多:在多的一方建立外键,指向一的一方的主键。
多对多:需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键。

<>多表实现的案例分析

-- 创建旅游线路分类表 tab_category -- cid 旅游线路分类主键,自动增长 -- cname 旅游线路分列名称非空,唯一。 create
table tab_category( cid int primary key auto_increment, cname varchar(100) not
null unique ); -- 创建旅游线路表tab_route -- rid 旅游线路主键,自动增长 -- rname
旅游线路名称非空,唯一,字符串100 -- price 价格;rdate 上架时间,日期类型; cid 外键,所属分类 create table
tab_route( rid int primary key auto_increment, rname varchar(100) not null
unique , price double, rdate date, rou_cid int, foreign key (rou_cid) references
tab_category(cid) -- constraint rou_cat_fk 省略,系统分配一个随机的外键约束名 ); /* 创建用户表
tab_user uid 用户主键,自增长 username 用户名100 唯一,非空 password 密码30 非空 name 真实姓名100
birthday 生日 sex 性别,定长字符串1 telephone 手机号 字符串11 email 邮箱,字符串长度100 */ create table
tab_user( uid int primary key auto_increment, username varchar(100) not null
unique , password varchar(30) not null , name varchar(100), birthday date, sex
char(1) default '男', telephone varchar(11), email varchar(100) ); /* 创建中间表
tab_favorite rid 旅游线路id,外键 date 收藏时间 uid 用户id ,外键 rid和uid
不能重复,设置复合主键,同一个用户不能收藏同一个线路两次 */ create table tab_favorite( rid int, date
datetime, uid int, -- 创建复合键 primary key (rid,uid), -- 联合主键 foreign key (rid)
references tab_route(rid), foreign key (uid) references tab_user(uid) );

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信