- 一对多关系
如用户表与部门表,一个用户只所属一个部门,一个部门由多个用户组成
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/23892a744a9a2359b11591fe7f2100df.png)
在创建用户表的部门id列时,创建部门表的外键即可 - 一对一关系
用户表与博客表,一个用户只能创建一个博客
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7679e392924dbd3475fc3a9bd426c5fe.png)
建表如下
create table userinfo1(
id int auto_increment primary key,
name char(10),
gender char(10),
email varchar(64)
)engine=innodb default charset=utf8;
create table admin(
id int not null auto_increment primary key,
username varchar(64) not null,
password VARCHAR(64) not null,
user_id int not null,
unique uq_u1 (user_id),
CONSTRAINT fk_admin_u1 FOREIGN key (user_id) REFERENCES userinfo1(id)
)engine=innodb default charset=utf8;
- 多对多关系
示例1:用户表与相亲表
示例2:用户表与主机表,需创建用户主机关系表
创建如下
create table userinfo2(
id int auto_increment primary key,
name char(10),
gender char(10),
email varchar(64)
)engine=innodb default charset=utf8;
create table host(
id int auto_increment primary key,
hostname char(64)
)engine=innodb default charset=utf8;
create table user2host(
id int auto_increment primary key,
userid int not null,
hostid int not null,
unique uq_user_host (userid,hostid),
CONSTRAINT fk_u2h_user FOREIGN key (userid) REFERENCES userinfo2(id),
CONSTRAINT fk_u2h_host FOREIGN key (hostid) REFERENCES host(id)
)engine=innodb default charset=utf8;