表与表之间的关系
可以分成三类:
-
一对一的关系:一般情况下,一对一的关系基本不用,当发现两张表是一对一的关系,合成一张表,例如:人和身份证号,学生和学生证号
-
一对多的关系:在表关系中是最多的情况,也是最常见的,比如:部门和员工
-
多对多:从两个方向观察发现都是1-n关系,比如:学生表和课程表, 企业和应聘者 双选会
-
操作:
学生表、课程表 多对多关系
用户表 、角色表 一对多关系-- 创建学生表 drop table student; create table student( s_id int PRIMARY key auto_increment, -- 主键约束 s_name VARCHAR(10) not null, -- 非空约束 s_num int unique not null -- 唯一约束,非空约束 ); -- 创建课程表 drop table course; create table course ( c_id int PRIMARY key auto_increment COMMENT '课程id', -- 主键约束 c_name VARCHAR(10) not null unique COMMENT '课程名称' -- 唯一 非空约束 ); -- 中间表 create table t_stu_cour ( s_id int, c_id int, CONSTRAINT stu_id foreign key(s_id) REFERENCES student(s_id), CONSTRAINT cour_id foreign key(c_id) REFERENCES course(c_id) ); -- 创建用户表 drop table user; create table user ( u_id int PRIMARY key auto_increment COMMENT '用户表主键id', -- 主键约束 u_name VARCHAR(10) not null, -- 非空约束 u_phone VARCHAR(11) unique, -- 唯一约束 u_rid int, -- 需要添加的外键信息 CONSTRAINT user_rid FOREIGN key(u_rid) REFERENCES role(r_id) ); -- 创建角色表 drop table role; create table role ( r_id int PRIMARY key auto_increment COMMENT '角色表主键id', -- 主键约束 r_name VARCHAR(10) not null UNIQUE, -- 唯一约束 非空约束 r_desc VARCHAR(255) ) -- 如果两张表是一对多关系 设计创建时,先创建主表,再创建从表 -
表与表之间关系总结
表之间关系 关系维护、创建 一对一 合表,互为外键约束,表之间关系很少 一对多 在从表(多的那一方)的那一方创建外键,关联主表的主键字段,先创建主表,再创建从表 多对多 创建中间表,中间表分别添加外键约束关联各自对应的的主键

5625

被折叠的 条评论
为什么被折叠?



