(1)用户信息表:该表主要包括用户编号、登陆名、姓名、密码、性别、电子邮件及用户角色等信息。
(2)问题信息表:该表主要包括问题编号、学生提问的问题、老师的回答、学生编号和教师编号等信息。
数据库逻辑结构设计:在数据库设计中,一般要使用E-R图对需求分析阶段的数据进行分类,形成实体,并确定实体之间的关系,并根据前面的需求分析得到系统各个实体间的关系,主要包括管理员,教师,学生。详细的数据库总体E-R图如图2所示。
图2 系统数据库总体E-R图
5.2数据库表
经过上面数据库需求分析和逻辑结构的设计,及其系统的总体的E-R图的设计,最终确立了数据库表的创建。系统数据库主要有两个重要的表,分别是用户表和问题表,具体信息如表1,表2所示。
表1 用户信息表
字段名称 数据类型 字段大小 是否主键 说 明
id int N/A 是 用户编号
username varchar 20 否 用户登陆名
nickname varchar 20 否 用户姓名
password varchar 20 否 用户密码
sex varchar 2 否 用户性别
role int N/A 否 用户角色
email varchar 50 否 电子邮件
表2 问题信息表
字段名称 数据类型 字段大小 是否主键 说 明
id int N/A 是 提问编号
question varchar 255 否 提问问题
answer varchar 255 否 问题答案
sid int N/A 否 学生编号
tid int N/A 否 老师编号
6.系统实现
经过前面的系统需求的分析和数据库的创建,网上答疑系统的基本的雏形也产生了,大致分为公共类设计,登陆注册模块,学生模块,教师模块,管理模块。
6.1公共类实现
在程序开发过程中,一般会用到一些公共模块,如数据库连接及操作的类、字符串处理的类等。因此,数据库操作类用来完成数据库的连接操作,以及数据库的查询、添加、删除和修改操作。将这几种操作编写到一个公共类里,可以减少重复代码的编写,有利于代码后期的文护。
该系统中,用到的公共模块主要分为两种,一种是与数据库的连接,这个部分的公共模块在com.dao包中,其中的DbUtil类提供与MySQL数据库的连接,而JdbcUserDao类则是提供前台各个功能操作数据库的增、删、改、查的方法;另外一种是前台显示的功能模块部分,比如,myInfo页面,则是根据登陆用户的信息进行显示的,myPassword是对密码进行修改的页面,学生端,老师端和管理员端都是通过该页面进行密码修改。在前面的基础上,明确了系统实现的大致的流程,接下来就是各个功能模块的实现了。
6.2功能模块实现
6.2.1登陆注册模块
在使用Struts开发的过程中,有时候一个动作要对应到一个Action,但是这些Action中有些属性或方法是相同的,例如都要用到访问数据库的Bean等,如果在每个Action里重复书写,代码就显得冗长而乏,所以首先定义一个类Action,包含一些通用的属性和方法,以后每个Action继承它即可。 JSP+Mysql网上在线答疑系统的研究与设计(3):http://www.youerw.com/jisuanji/lunwen_2173.html