技术与教育的融合:构建现代成绩管理系统

4.3 数据库设计

用户通过系统的功能操作来进行数据交互,包括数据的添加,数据的更新,数据的删除,数据的查询等基本功能操作,表面上虽然是操作系统界面提供的功能,但是实际上系统的这些数据是在数据库当中进行访问与操作的。目前市场上可供选择的存储数据的数据库有很多,除了简单版的Access之外,还有SQL Server,DB2,Informix,MySQL等关系型数据库可供选择,由于关系型数据库具有固定的表结构,以及对数据一致性要求比较强,所以相比没有固定表结构以及具有灵活的数据格式的非关系型数据库而言,在程序配套数据库的选择中,关系型数据库的使用率更高。本系统选择MySQL来存放数据,其相关理论以及技术在经过了很长时间的发展之后,变得非常成熟,各大网络平台都公开分享其开发源码,而且其对计算机的配置要求很低,不需要过多内存进行安装,很符合本系统对于数据库的选择要求。

4.3.1 数据库E-R图

本节需要对系统中存放在数据库中的数据进行充分分析,对数据的实体,实体特征,联系等进行确定,然后通过概念模型的表示方法即E-R图进行表达,在E-R图绘制工具中,选择椭圆,菱形框,矩形等形状表达实体属性,实体间联系,实体这些信息,使用实线段将这些形状进行连接即可。初步完成E-R图之后,需要进行检查,及时进行有误数据的更改,删除实体间存在的冗余联系,删除E-R图中冗余的数据,最终要展示一个内容准确的E-R图。

(1)管理员包括的属性有用户名,新增时间等。其属性图如下。

图4.4 管理员实体属性图

(2)课程包括的属性有课程名称,课程简介,创建时间,课程编号等信息。其属性图如下。

图4.5 课程实体属性图

(3)成绩包括的属性有学生,创建时间,成绩,详情等。其属性图如下。

图4.6 成绩实体属性图

(4)学生包括的属性有姓名,头像,生日,性别等。其属性图如下。

图4.7 学生实体属性图

(5)设计的各实体间关系E-R图如下。

图4.8 实体间关系E-R图

4.3.2 数据库表结构

在指定的数据库里面对数据表进行创建命名,然后设计各个数据表的存储结构,需要对该数据库的操作非常熟悉,并且还需要学习并掌握一定的数据表设计方面的知识,比如数据命名,作为系统的开发人员,为了避免程序运行产生乱码现象以及为了确保系统的正常运行,在对数据表进行命名时,一般都是采用英文名称,同时在对数据表的字段进行编辑时,也是采用英文的方式进行,为了方便今后对数据表的设计内容进行更改或查看,对一些比较重要的字段都会进行中文备注,或者是使用中文进行字段描述。设计期间,也需要对各个字段选择合适的数据类型以及设置匹配的取值范围,当一张数据表设计完成之后,还要对该表的主键进行标注,就是为了确保该数据表的唯一性与独立性。

表4.1 成绩信息表

字段 注释 类型 空

id (主键) 主键 int(11) 否

kecheng_id 课程 int(11) 是

yonghu_id 学生 int(11) 是

chengji_number 成绩 int(11) 是

chengji_content 详情 text 是

create_time 创建时间 timestamp 是

表4.2 课程信息表

字段 注释 类型 空

id (主键) 主键 int(11) 否

kecheng_uuid_number 课程编号 varchar(200) 是

kecheng_name 课程名称 varchar(200) 是

kecheng_types 课程类型 int(11) 是

kecheng_file 课程文件 varchar(200) 是

kecheng_content 课程简介 text 是

create_time 创建时间 timestamp 是

表4.3 公告信息表

字段 注释 类型 空

id (主键) 主键 int(11) 否

news_name 公告标题 varchar(200) 是

news_types 公告类型 int(11) 是

news_photo 公告图片 varchar(200) 是

insert_time 公告时间 timestamp 是

news_content 公告详情 text 是

create_time 创建时间 timestamp 是

表4.4 管理员表

字段 注释 类型 空

id (主键) 主键 bigint(20) 否

username 用户名 varchar(100) 否

password 密码 varchar(100) 否

role 角色 varchar(100) 是

addtime 新增时间 timestamp 否

表4.5 学生表

字段 注释 类型 空

id (主键) 主键 int(11) 否

username 账户 varchar(200) 是

password 密码 varchar(200) 是

yonghu_name 学生姓名 varchar(200) 是

yonghu_photo 头像 varchar(255) 是

sex_types 性别 int(11) 是

yonghu_types 班级 int(11) 是

yonghu_phone 联系方式 varchar(200) 是

shengri_time 生日 timestamp 是

yonghu_email 邮箱 varchar(200) 是

yonghu_delete 假删 int(11) 是

create_time 创建时间 timestamp 是

相关推荐
Allen Bright18 分钟前
【MySQL基础-20】MySQL条件函数全面解析:提升查询逻辑的利器
数据库·mysql
Justice link43 分钟前
企业级NoSql数据库Redis集群
数据库·redis·缓存
爱的叹息44 分钟前
主流数据库的存储引擎/存储机制的详细对比分析,涵盖关系型数据库、NoSQL数据库和分布式数据库
数据库·分布式·nosql
XiaoLeisj1 小时前
【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法
xml·java·数据库·spring boot·sql·intellij-idea·mybatis
dleei2 小时前
MySql安装及SQL语句
数据库·后端·mysql
WannaRunning2 小时前
浅谈Tomcat数据源连接池
java·oracle·tomcat
信徒_2 小时前
Mysql 在什么样的情况下会产生死锁?
android·数据库·mysql
嘴对嘴编程3 小时前
oracle数据泵操作
数据库·oracle
·薯条大王9 小时前
MySQL联合查询
数据库·mysql
morris13111 小时前
【redis】redis实现分布式锁
数据库·redis·缓存·分布式锁