Mysql多表关系
关系分类:
- 一对多/多对一:
- 实现方式: 实现方式:在多的一方建立外键,指向一的一方的主键。
2. 多对多:
- 实现方式:多对多关系的实现需要借助第三张中间表,中间表至少包含两个字段。其中每一个字段分别指向原表
3. 一对一:
案例分析:旅游线路
代码实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| <pre>
#创建topic分类表 create table topic( cid int, name varchar(20) ); #创建路线表routes create table routes( rid int, name varchar(20), price int ); #创建用户表users create table users( uid int, username varchar(20), sex varchar(1) default '男', phone_number varchar(11) ); #分别设置rid、cid和uid为主键 alter table routes modify rid int primary key ; alter table topic modify cid int primary key ; alter table users modify uid int primary key ; #添加在路线表中添加外键cid alter table routes add cid int; alter table routes add constraint cid_rid foreign key (cid) references topic(cid) on update cascade on delete cascade ;
#创建临时表t create table t( rid int, date date, uid int ); # 在表t中添加联级操作 alter table t add constraint uid foreign key (uid) references users(uid) on update cascade on delete cascade ; alter table t add constraint rid foreign key (rid) references routes(rid) on update cascade on DELETE cascade ;
|
有关MySql约束概念,请查看《Mysql约束笔记》。