多表设计值多表分析及创建
需求:
完成一个学校的选课系统,在选课系统中包含班级、学生、课程这些尸体。
分析:
1.一个班级可以有多个学生,一个学生只能有一个班级,一对多(班级是一,学生是多)
2.一个学生可以选多门课程,一门课程可以有多个学生,多对多
3.语法:多表建表原则
一对多:在多的一方创建一个字段作为外键,指向一的一方的主键
多对多:创建一张中间表,至少有2个字段都作为外键,分别指向各自一方的主键
一对一:直接创建一张表
create table class(
cid int primary key auto_increment,
cname varchar(20)
);
create table student(
sid int primary key auto_increment,
sname varchar(20),
cage int,
c_id int,
constraint stu_cls_fk1 foreign key(c_id) references class(cid)
);
create table course(
co_id int primary key auto_increment,
co_name varchar(20)
);
create table cou_stu(
cno int,
sno int,
constraint c_c_fk1 foreign key(cno) references course(co_id),
constraint s_s_fk2 foreign key(sno) references student(sid)
);