mysql设计表之间的联系_MySQL创建表与表之间的联系

该文章详细介绍了如何设计一个选课系统的数据库,包括班级表、教师表、学生表、课程表和选课表的创建,以及各表之间的外键约束,实现了学生、教师、课程之间的联系。
摘要由CSDN通过智能技术生成

选课系统

c23775c6005c4952089305ca2f08f8a6.png

6. 创建数据库创建数据库设置编码为UTF8

CREATE DATABASE choose CHARSET = utf8;

6.1 创建班级表

表名:classes

字段:

class_no 整型 自增长 主键 -- 班级编号

class_name char(20) 非空   唯一 -- 班级名称

department_name char(20) 非空 -- 院系名称

create tableclasses(

class_noint auto_increment primary key,

class_namechar(10) unique not null,

department_namechar(20) not null);

af0811bdab5c33afde71699e500c035d.png

6.2 创建教师表

表名:teacher

字段:

teacher_no char(10) 主键 -- 教师工号

teacher_name char(10) 非空 -- 教师姓名

teacher_contact char(20) 非空 -- 联系方式

create tableteacher(

teacher_nochar(10) primary key,

teacher_namechar(10) not null,

teacher_contactchar(20) not null);

1eaef81dbd81dc80c16b1a238ec65de2.png

6.3 创建学生表

表名: student

字段:

student_no char(11) 主键 --学号

student_name char(10) 非空 --姓名

student_contact char(20) 非空 --联系方式

class_no int 外键 --引用的是班级表中的班号(class_no)|学生表和班级表中的外键

create tablestudent(

student_nochar(11) primary key,

student_namechar(10) not null,

student_contactchar(20) not null,

class_noint,

设定约束别名(student_class_fk)指定自身字段(class_no)为外键来引用学生表(classes)的字段(class_no)constraint student_class_fk foreign key(class_no) referencesclasses(class_no)

);

393d7078c4a6d788a1a903d05fa5c6ce.png

6.4 创建课程表

表名: course

字段:

course_no int 自增长 主键 --课程号

course_name char(16) 非空 --课程名

up_limit int 默认 60 --人数上限值

description varchar(100) 非空 --描述信息

status char(6) 默认 未审核 --课程状态默认值(未审核)

teacher_no char(10) 非空 唯一 外键 --主讲老师|课程表和教师表之间的外键

create tablecourse(

course_noint auto_increment primary key,

course_namechar(16) not null,

up_limitint default 60,

descriptionvarchar(100) not null,

statuschar(6) default'未审核',

teacher_nochar(10) unique not null,constraint course_teacher_fk foreign key(teacher_no) referencesteacher(teacher_no)

);

e7264b9fd84fb7ac2a19ef5e5d7526be.png

6.5 创建选课表

表名: choose

字段:

choose_no int 自增长 主键 --编号

student_no char(11) 非空 外键 --学生学号

course_no int 非空 外键 --课程号

score tinyint unsigned --成绩

choose_time datetime 非空 --选课时间

create tablechoose(

choose_noint auto_increment primary key,

student_nochar(11) not null,

course_noint not null,

choose_timedatetime not null,

scoretinyintunsigned,constraint choose_student_fk foreign key(student_no) referencesstudent(student_no),constraint choose_course_fk foreign key(course_no) referencescourse(course_no)

);

c937d7f557a3dadaf35863f8facb1a0e.png

6.6多对多的基本模型基本完成

10c8ff14b658b1aa2e5ead041d8a939b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值