当前位置:网站首页 > 数据科学与大数据 > 正文

数据库课程设计(数据库课程设计学生成绩管理系统)



在本项目中,我们使用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 表

        注意: 为了确保数据库的安全性和数据的完整性,应对用户密码进行加密存储。

        同步陪套课程: 点击这里

        到此这篇数据库课程设计(数据库课程设计学生成绩管理系统)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

        版权声明


        相关文章:

      • openpose训练自己的数据集(openpose怎么训练)2025-02-10 13:54:07
      • 大数据学什么内容(大数据都学些什么)2025-02-10 13:54:07
      • 达梦客户端如何配集群数据库(如何启动达梦数据库)2025-02-10 13:54:07
      • spss24.0数据分析教程(spss22数据分析教程)2025-02-10 13:54:07
      • mongodb数据库登录命令(mongodb数据库基本操作)2025-02-10 13:54:07
      • 自动驾驶数据(自动驾驶数据标注员是干嘛的)2025-02-10 13:54:07
      • springboot数据库密码动态配置(springboot登录密码加密)2025-02-10 13:54:07
      • druiddatasource配置(druid配置数据源)2025-02-10 13:54:07
      • impdp导入指定表名(impdp导入数据到指定表)2025-02-10 13:54:07
      • 数据库入门教程(数据库入门教程电子版)2025-02-10 13:54:07
      • 全屏图片