在本项目中,我们使用MySQL8数据库,因此在开始之前,请确保您的电脑已安装MySQL8。
首先,我们可以通过终端测试连接MySQL,输入相应的MySQL命令进行连接;
mysql -u root -p
或者使用可视化工具,比如免费版的Navicat Premium Lite,它已经足够满足本项目的需求。
创建数据库
在创建数据库之前,需要先连接本地服务器(localhost)。连接成功后,右键选择“创建数据库”,如下图所示:
数据库命名为student_system,字符集选择utf8mb4,排序使用第一个默认选项。数据库创建成功后,我们开始设计和创建数据表。
MySQL 数据库表设计
根据项目需求,应用中有两个用户角色——管理员和教师。因此,我们需要创建user表用于管理用户,还需要classes表和students表用于管理班级和学生信息。
1. classes 表
classes 表用于存储班级的基本信息。字段及其属性如下:
字段名数据类型约束条件描述class_idINTPRIMARY KEY, AUTO_INCREMENT班级ID,主键,自增class_nameVARCHAR(255)NOT NULL班级名称
创建表时,可以直接在Navicat的查询窗口中,点击对象栏的中的+号执行SQL语句,如下图所示:
创建 classes 表的SQL语句:
CREATE TABLE classes (
class_id INT PRIMARY KEY AUTO_INCREMENT,
class_name VARCHAR(255) NOT NULL
);
创建班级表后,数据库中增加了一张班级表,该表包含两个字段:class_id 和 class_name。其中,class_id 是主键且自增。班级表结构简单,主要用于记录班级基本信息。
2. student 表
在学生表中,student_id 作为主键,类型为整型,并自增。学生表还包括学生姓名和学号。其中,学号要求唯一,即每位学生都有一个唯一的学号,因此对该字段设置了唯一性约束。学生姓名则不受此限制,允许班级内有重名的学生,例如两位同学可以同名为“王强”,但学号会不同。性别字段 gender 采用整型存储,以节省内存。存储时,使用1表示男性,2表示女性。此外,class_id 字段表示学生所属班级,它与班级表中的 class_id 建立了关联关系,即一对多的关系——每位学生必然属于一个班级。这里通过外键 FOREIGN KEY 关联到班级表,以保证班级与学生之间的关联性。学生表包含语文、数学和英语三科的成绩字段,这些字段使用浮点型,以便支持带小数的分数,例如60.5或70.5分等。
student 表用于存储学生的基本信息及成绩。字段及其属性如下:
字段名数据类型约束条件描述student_idINTPRIMARY KEY AUTO_INCREMENT学生ID,主键,自增student_nameVARCHAR(255)NOT NULL学生姓名student_numberVARCHAR(255)NOT NULL UNIQUE学号,唯一性约束genderINTNOT NULL性别,1表示“男”,2表示“女”class_idINTNOT NULL, FOREIGN KEY (class_id) REFERENCES classes(class_id)班级ID,外键,关联classes表的class_idchinese_scoreFLOAT语文分数math_scoreFLOAT数学分数english_scoreFLOAT英语分数
接下来,创建学生表。可以将 CREATE 语句直接复制并运行,代码如下:
创建 student 表的SQL语句:
CREATE TABLE student (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(255) NOT NULL,
student_number VARCHAR(255) NOT NULL UNIQUE,
gender INT NOT NULL,
class_id INT NOT NULL,
chinese_score FLOAT,
math_score FLOAT,
english_score FLOAT,
FOREIGN KEY (class_id) REFERENCES classes(class_id)
);
表创建成功后,通过刷新查看新增的 Student 表及其各字段和主键。每个字段的类型也可以进一步查看。
在创建顺序上需注意,班级表 classes 应先于学生表创建,因为学生表中的班级字段需要引用班级表的主键 class_id 作为外键。因此,建议先创建班级表,再创建学生表。
3. user 表
接下来是用户表的创建。用户表主要存储两类用户信息:管理员和教师。用户表的主键为 user_id,并设为自增字段。表中还包括 username、password 和 nickname 等字段。
其中,username(用户名)是唯一的,因为用户登录时需使用独一无二的用户名。nickname(昵称)字段不受唯一性限制。昵称可以自定义,例如,用户名是小写字母的 "zhangsan"(张三),而昵称可以为 "张三老师" 或 "一年一班张三老师",方便管理员识别教师所属班级。
此外,user_role 字段用于区分用户类型:1 表示管理员,2 表示教师。教师可关联多个班级,class_id 字段通过存储班级 ID(例如 "1,2")表示教师同时管理多个班级。对于管理员用户,class_id 可留空,表示其可以管理所有班级。
user 表用于存储系统用户的基本信息及角色信息。字段及其属性如下:
字段名数据类型约束条件描述user_idINTPRIMARY KEY AUTO_INCREMENT用户ID,主键,自增usernameVARCHAR(255)NOT NULL UNIQUE用户名,唯一性约束passwordVARCHAR(255)NOT NULL密码nicknameVARCHAR(255)昵称user_roleINT用户角色,1表示管理员,2表示老师class_idVARCHAR(255)管理班级,存储为‘1,2,3’形式的字符串,关联classes表的class_id字段
创建 user 表的SQL语句:
CREATE TABLE user (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
nickname VARCHAR(255),
user_role INT,
class_id VARCHAR(255)
);
设置完成后,创建 User 表并刷新,即可看到表和字段信息。
至此,数据库及各数据表创建完成,并对每个表的字段和类型进行了介绍。如需更详细的信息和创建 SQL 语句,可参考相关文档。
表设计文档手册
1. classes 表
2. student 表
3. user 表
注意: 为了确保数据库的安全性和数据的完整性,应对用户密码进行加密存储。
同步陪套课程: 点击这里
到此这篇数据库课程设计(数据库课程设计学生成绩管理系统)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/60482.html