1.单一对应关系
一个实体对应一个实体
例如:一个人的姓名对应一个人的其他不常用信息
设计 :
两个实体表内,存在相同的主键值。
如果记录内的主键值等于另一个关系表内记录的主键值,
则两条记录对应1:1
2.从属关系
一个实体对应多个实体
例如:班级对应学生
设计:
实体较多的那端(学生),增加一个字段,用于表示属于另一个实体
的唯一标志(主键);
3.交叉从属关系
一个实体对应多个实体,同时,这个实体也有被多个实体对应。
例如:讲师与班级关系;
设计:
典型方法是利用一个中间表表示实体之间的对应关系。
分别记录这个实体的主键,以及任何与它有对应关系的主键。
此时中间表与其他实体的表关系为从属关系。
(表中为组合主键)
记录形式为1对1.
M:N=1:M+1:N
create table t9_class(
class_id int primary key auto_increment,
class_name varchar(10),
begining_time datetime
);
create table t9_student(
stu_id int primary key,
class_id int,
stu_name varchar(10)
);
create table t9_teacher(
teacher_id int primary key
);
create table t9_teacher_class(
class_id int,
teacher_id int,
primary key(teacher_id,class_id)
);
/*
class与student是一对多关系;
class与teacher是多对多关系;
class与teacher_class是一对多关系;
teacher与teacher_class是一对多关系;
*/