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 是