在项目开发中,在进行数据库表结构设计时,会根据业务需求以及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种对应关系
- use other;
- select database();
- create table student(
- id int auto_increment primary key comment '主键ID',
- name varchar(10) comment '姓名',
- no varchar(10) comment '学号'
- )comment '学生表';
- insert into student values (null,'lom','42201'),
- (null,'kom','42202'),
- (null,'jom','42203'),
- (null,'hom','42204');
-
- create table course(
- id int auto_increment primary key comment '主键ID',
- class varchar(10) comment '课程名称'
- );
- insert into course values (null,'chinese'),
- (null,'math'),
- (null,'chinese'),
- (null,'english');
-
- create table student_course(
- id int auto_increment primary key comment '主键',
- StudentId int not null comment '学生ID',
- CourseId int not null comment '课程ID',
- constraint fk_CourseId foreign key (CourseId) references course(id),
- constraint fk_StudentId foreign key (StudentId) references student(id)
- )comment '学生课程中间表';
- insert into student_course values (null,1,1),(null,1,2),(null,1,4),
- (null,2,1),(null,2,2),
- (null,3,1),(null,3,2),(null,3,3),(null,3,4),
- (null,4,2);
-
运行之后,会建立三个表:
student:存放着学生信息的表,其字段“id”作为student_source表中的StudentId字段的外键;
source:存放着课程名称,其字段“id”作为student_source表中的SourceId字段的外键;
student_sources:作为一个中间表,将student和source两张表连接在一起,多对多关系;
在创建子表结构时,给外键字段设置限制“唯一”,unique即可