mysql

2020-08-12数据库的设计

2020-08-21  本文已影响0人  智障猿

多表之间的关系

  1. 一对一
    如:人与身份证
  2. 一对多
    如:部门与员工
  3. 多对多
    如:学生课程
  1. 一对多:在多的一方建立外键,指向一的一方的主键。
  2. 多对多:多对多关系的实现需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键
  3. 一对一:可以在任意一方添加外键指向另一方的主键,且给外键添加唯一约束

①班级表

CREATE TABLE class(
cid INT,
name VARCHAR(20));

②学生表

CREATE TABLE student(
id int PRIMARY KEY,
NAME VARCHAR(10),
cid INT,
CONSTRAINT cls_stu FOREIGN KEY (cid) REFERENCES class(cid));

③课程表

create TABLE course(
id INT PRIMARY KEY,
name VARCHAR(20)
);

④为实现学生与课程多对多关系的中间表

create TABLE m_student_course(
sid int,
cid int,
PRIMARY KEY (sid,cid),-- 联合主键
CONSTRAINT tostudent FOREIGN KEY (sid) REFERENCES student(id),
CONSTRAINT tocourse FOREIGN KEY (cid) REFERENCES course(id)
);

范式

上一篇 下一篇

猜你喜欢

热点阅读