0
点赞
收藏
分享

微信扫一扫

【MySQL】数据表之间常用关系,外键变种

  1. 一对多关系
    如用户表与部门表,一个用户只所属一个部门,一个部门由多个用户组成
    【MySQL】数据表之间常用关系,外键变种_用户组
    在创建用户表的部门id列时,创建部门表的外键即可
  2. 一对一关系
    用户表与博客表,一个用户只能创建一个博客
    【MySQL】数据表之间常用关系,外键变种_用户组_02
    建表如下
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. 多对多关系
    示例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;


举报

相关推荐

0 条评论