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

数据库课程设计(数据库课程设计学生成绩管理系统)在本项目中 我们使用 MySQL8 数据库 因此在开始之前 请确保您的电脑已安装 MySQL8 首先 我们可以通过终端测试连接 MySQL 输入相应的 MySQL 命令进行连接 mysql u root p 或者使用可视化工具 比如免费版的 Navicat Premium Lite 它已经足够满足本项目的需求 创建数据库 在创建数据库之前 需要先连接本地服务器 localhost 连接成功后

大家好,我是讯享网,很高兴认识大家。



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

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

        同步陪套课程: 点击这里

        小讯
        上一篇 2025-05-13 07:38
        下一篇 2025-06-12 22:40

        相关推荐

        版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
        如需转载请保留出处:https://51itzy.com/kjqy/139576.html