数据库课程设计 - 校园日常事务管理系统

更新时间:2024-02-03 07:48:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据库设计论文

题目:数据库课程设计 --校园日常事务管理系统

1

目录

第1章 引言................................................................................................................ 3

1.1项目背景........................................................................................................... 3 1.2项目目标及意义............................................................................................... 3 1.3任务概述........................................................................................................... 3 第2章 软件项目计划................................................................................................ 4

2.1问题定义........................................................................................................... 4 2.2可行性分析....................................................................................................... 4

2.2.1技术可行性分析..................................................................................... 4 2.2.2操作可行性分析..................................................................................... 4

第3章需求分析............................................................................................................ 4

3.1功能分析........................................................................................................... 4 3.2 软硬件环境需求............................................................................................ 5 第4章系统设计............................................................................................................ 5

4.1绘制用例图设计系统功能............................................................................... 5 4.2系统流程图....................................................................................................... 6 第5章数据库设计........................................................................................................ 7

5.1数据库分析与设计........................................................................................... 7

5.1.1数据库分析............................................................................................. 7 5.1.2数据库概念设计..................................................................................... 7 5.1.3数据库逻辑结构设计............................................................................. 8 5.2绘制表之间的关系E-R图 .............................................................................. 9 5.3用于建表的SQL语句 ................................................................................... 10 第6章程序界面说明.................................................................................................. 14

6.1系统演示......................................................................................................... 14 6.2文件夹组织结构:......................................................................................... 16 结束语.......................................................................................................................... 19 参考文献...................................................................................................................... 19

2

数据库课程设计 --校园日常事务管理系统

第1章 引言

1.1项目背景

XXXX大学是一个拥有N万师生的大学。随着大学的扩招,校园人数的增多,学校领导和学生之间的沟通成为一个大大的问题。同学们和校园领导之间需要一些信息的沟通。然而很多时候,学校领导都很忙,而且大多数同学都找不到很多领导的办公地点。这给同学们和老师、领导之间的沟通带来了不便。校园日常事务管理系统是这样一个网站:同学们遇到了生活和学习上的一些问题可以在网上发布信息,老师和领导可以看到,并给同学们给出答复和解决方案。校园日常事务管理系统大大方便了同学与领导之间的沟通。因此开发一款校园日常事务管理系统已成为一个亟待解决的问题。

1.2项目目标及意义

该系统可以帮助学校快速地进行日常事务管理,大幅度提高学校办公的效率,方便同学与领导之间的交流。学生反映的问题能得到及时的反馈,问题也能很快得到解决。

1.3任务概述

校园日常事务管理系统主要功能模块及描述如下:

1)登录模块用于登录系统,只有登录系统的用户才能发布消息。如果没有登录则只能查看消息

2)消息列表模块显示最新发布的消息列表,通过点击消息标题可以查看具体消息内容。

3)发布消息模块负责消息的发布,以及消息的回复。

4)批复消息模块如果是用户是领导,则可以对消息进行批复,批复的内容会是红色字体。

3

第2章 软件项目计划

2.1问题定义

学校的学生希望能进入系统能发布消息,也能回复消息,自己发布的消息能被领导看见,然后领导看到了可以进行批复。给出解决问题的方法。

2.2可行性分析 2.2.1技术可行性分析

现在计算机的普及,大学生基本都有自己的电脑,具有一定的软硬件基础,会使用各种管理软件和上网。学校的老师更不用说了。新系统投入使用时,用户都能很轻松的上手。

2.2.2操作可行性分析

而整个校园日常事务管理系统采用最友好的交互界面,简介明了,不需要对数据库进行深入的了解。

由于我们是在模拟现实的实际需要而开发的系统,作为我们的课程设计课题。因此在经济可行性研究不给予考虑。

由此,该系统的操作是可行的,能满足校园日常事务管理的需求。 综合以上几个方面,该系统具有很高的开发可行性,无论是从技术上还是操作上。

可行性分析是为了弄清所定义的项目是不是可能实现和值得进行。这样可以大大简化了系统分析和系统设计的过程。减少风险。

第3章需求分析

3.1功能分析

对校园内部网站来说,信息的及时信是要考虑的最大问题。每个人都可以发布自己的消息,其他人员可以刷新网站的方式来查看最新的消息,也可以对发表的信息进行回复,管理层领导可以对学生的消息进行批复。具体的角色功能如下所示:

4

学生角色(普通用户):

发布新消息

回复已经发布的消息 查看所有消息 管理层领导角色:

发布新消息

回复已经发布的消息 批复已经发布的消息 查看所有消息

3.2软硬件环境需求

根据系统的基本功能需求,以及客户的信息系统环境,计划采用浏览器/服务器模式来构建管理系统。本项目计划采用J2EE技术来开发。

由于本系统不涉及复杂的数据分析和处理,为了节约开发成本和降低开发难度,计划采用JSP Model2结构来开发,具体的软硬件环境要求如下。

(1)硬件环境:采用普通办公用个人计算机作为服务器即可。 (2)操作系统:可以采用Windows XP以上系统。 (3)数据库系统:采用MySQL 5.0即可。 (4)Web服务器:采用Tomcat 5以上系统。

(5)Java运行环境:采用JRE 1.5以上中文版本。

(6)客户端:采用浏览器工具即可。 (7)开发工具:MyEclipse 8.6。

第4章系统设计

4.1绘制用例图设计系统功能

校园日常管理系统一共包含两种用户角色,分别是管理层领导、学生。下面来分析这两个角色所对应的用例图。

从前面的功能分析可以看出管理层领导和学生的功能非常类似,不同的是管理层领导多了一个批复已发布消息的功能。所以可以得出管理层领导继承了学生的功能,其关系如4.1.1图所示

图4.1.1

5

学生可以发布新消息、回复已经发布的消息、查看所有消息。其用例图如图所示

管理层领导可以发布新消息、回复已经发布的消息、查看所有消息以及批复已经发布的消息,其用例图如图4.1.2图所示。

图4.1.2

4.2系统流程图

本系统需要对普通用户身份进行验证,验证过后再判断用户是普通用户还是管理层领导,如果是普通用户,可以发布新消息、回复已经发布的消息、查看所有消息;如果是管理层领导则会有一个更高级的功能,那就是批复消息。系统流程图如4.2.1图所示。

图4.2.1

6

第5章数据库设计

5.1数据库分析与设计 5.1.1数据库分析

本系统采用MySQL5.0作为后台数据库,数据库名为db_affairmanage。数据库中一共包含4张表,用来储存不同的信息,详细信息如图5.1.1.1图所示

图5.1.1.1

5.1.2数据库概念设计

本系统一共规划出4个实体,分别是人员信息实体、消息信息实体、消息回复实体以及消息批复实体。

只有校园内部人员才可以使用该系统,因此需要在数据库中建立一个人员信息表,用来储存员工的相关信息。人员信息实体E-R图如下图所示。

图5.1.2.1用户信息实体E-R图

7

图5.1.2.2消息信息实体E-R图

图5.1.2.3消息回复实体E-R图

图5.1.2.消息批复实体E-R图

5.1.3数据库逻辑结构设计

用户信息表 字段名 employeeID employeeName employeeSex employeeBirth

数据类型 Int Varchar Bit Date 是否主键 是 否 否 否 描述 用户编号 用户姓名 用户性别 用户生日 8

employeePhone employeePlace joinTime password isLead 消息信息表: 字段名 messageID messageTitle messageContent employeeID publishTime 消息回复表 字段名 replyID replyContent employeeID replyTime messageID 消息批复表 字段名 criticismID criticismContent employeeID criticismTime messageID Varchar Varchar Date varchar bit 数据类型 Int Varchar Text Int Date 数据类型 Int Text Int Datetime int 数据类型 Int Text Int Datetime Int 否 否 否 否 否 是否主键 是(自动递增) 否 否(外键) 否 外键 是否主键 是(自动递增) 否 否(外键) 否 否(外键) 是否主键 是(自动递增) 否 否(外键) 否 否(外键) 用户电话 用户住址 加入时间 密码 是否领导 描述 消息ID 消息标题 消息内容 发布人 发布时间 描述 消息回复ID 回复内容 回复人 回复时间 消息ID 描述 消息批复ID 批复内容 批复人 批复时间 消息ID 5.2绘制表之间的关系E-R图

表之间的关系E-R图如图5.2.1图所示

9

图5.2.1

5.3用于建表的SQL语句

以下是用MySQL-Front建立好数据库后导出的SQL语句。 # Host: localhost Database: db_affairmanage # ------------------------------------------------------ # Server version 5.1.46-community #

# Source for table tb_criticism #

DROP TABLE IF EXISTS `tb_criticism`; CREATE TABLE `tb_criticism` (

`criticismID` int(11) NOT NULL AUTO_INCREMENT, `criticismContent` text,

`employeeID` int(11) DEFAULT NULL, `criticismTime` datetime DEFAULT NULL, `messageID` int(11) DEFAULT NULL, PRIMARY KEY (`criticismID`),

KEY `employeeID` (`employeeID`), KEY `messageID` (`messageID`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=gb2312 COMMENT='???¢?ú?′±í'; #

# Dumping data for table tb_criticism #

10

LOCK TABLES `tb_criticism` WRITE;

/*!40000 ALTER TABLE `tb_criticism` DISABLE KEYS */;

INSERT INTO `tb_criticism` VALUES (1,'

早点睡觉

',123,'2011-11-26 21:17:54',23);

INSERT INTO `tb_criticism` VALUES (2,'

允许请假

',123,'2011-11-26 21:18:25',24);

INSERT INTO `tb_criticism` VALUES (3,'

好的,会尽快修复

',123,'2011-11-26 21:21:42',25);

/*!40000 ALTER TABLE `tb_criticism` ENABLE KEYS */; UNLOCK TABLES; #

# Source for table tb_employee #

DROP TABLE IF EXISTS `tb_employee`; CREATE TABLE `tb_employee` (

`employeeID` int(11) NOT NULL DEFAULT '0', `employeeName` varchar(20) DEFAULT NULL, `employeeSex` bit(1) DEFAULT NULL, `employeeBirth` date DEFAULT NULL,

`employeePhone` varchar(20) DEFAULT NULL, `employeePlace` varchar(50) DEFAULT NULL, `joinTime` date DEFAULT NULL,

`password` varchar(20) DEFAULT NULL, `isLead` bit(1) DEFAULT NULL, PRIMARY KEY (`employeeID`)

) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COMMENT='?±1¤D??¢±í'; #

# Dumping data for table tb_employee #

LOCK TABLES `tb_employee` WRITE;

/*!40000 ALTER TABLE `tb_employee` DISABLE KEYS */;

INSERT INTO `tb_employee` VALUES (123,'苏宇',b'1','1989-01-12','13550119405','成都','2008-01-11','123456',b'1');

/*!40000 ALTER TABLE `tb_employee` ENABLE KEYS */; UNLOCK TABLES; #

# Source for table tb_message #

11

DROP TABLE IF EXISTS `tb_message`; CREATE TABLE `tb_message` (

`messageID` int(11) NOT NULL AUTO_INCREMENT, `messageTitle` varchar(50) DEFAULT NULL, `messageContent` text,

`employeeID` int(11) DEFAULT NULL, `publishTime` datetime DEFAULT NULL, PRIMARY KEY (`messageID`), KEY `employeeID` (`employeeID`)

) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=gb2312 COMMENT='???¢±í'; #

# Dumping data for table tb_message #

LOCK TABLES `tb_message` WRITE;

/*!40000 ALTER TABLE `tb_message` DISABLE KEYS */;

INSERT INTO `tb_message` VALUES (1,'222222','22222222222222',123,'2011-11-11'); INSERT INTO `tb_message` VALUES (22,'看能不能发布中文信息','

看能不能发布中文信息

',123,'2011-11-26 20:54:40');

INSERT INTO `tb_message` VALUES (23,'寝室断电了怎么办','

寝室断电了怎么办

',123,'2011-11-26 21:17:43');

INSERT INTO `tb_message` VALUES (24,'由于生病请假','

由于生病请假

',123,'2011-11-26 21:18:16');

INSERT INTO `tb_message` VALUES (25,'6B401的投影仪坏了','

6B401的投影仪坏了,影响了我们正常的上课

',123,'2011-11-26 21:21:16'); /*!40000 ALTER TABLE `tb_message` ENABLE KEYS */; UNLOCK TABLES; #

# Source for table tb_reply #

DROP TABLE IF EXISTS `tb_reply`; CREATE TABLE `tb_reply` (

`replyID` int(11) NOT NULL AUTO_INCREMENT, `replyContent` text,

`employeeID` int(11) DEFAULT NULL, `replyTime` datetime DEFAULT NULL, `messageID` int(11) DEFAULT NULL, PRIMARY KEY (`replyID`),

KEY `employeeID` (`employeeID`),

12

KEY `messageID` (`messageID`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gb2312 COMMENT='???¢???′±í'; #

# Dumping data for table tb_reply #

LOCK TABLES `tb_reply` WRITE;

/*!40000 ALTER TABLE `tb_reply` DISABLE KEYS */;

INSERT INTO `tb_reply` VALUES (1,'adfsdfasdfsdfasdfs',123,'2011-11-22',1);

INSERT INTO `tb_reply` VALUES (2,'

就是,我们也影响了

',123,'2011-11-26 21:21:29',25);

/*!40000 ALTER TABLE `tb_reply` ENABLE KEYS */; UNLOCK TABLES; #

# Foreign keys for table tb_criticism #

ALTER TABLE `tb_criticism`

ADD CONSTRAINT `tb_criticism_ibfk_1` FOREIGN KEY (`employeeID`) REFERENCES `tb_employee` (`employeeID`),

ADD CONSTRAINT `tb_criticism_ibfk_2` FOREIGN KEY (`messageID`) REFERENCES `tb_message` (`messageID`); #

# Foreign keys for table tb_message #

ALTER TABLE `tb_message`

ADD CONSTRAINT `tb_message_ibfk_1` FOREIGN KEY (`employeeID`) REFERENCES `tb_employee` (`employeeID`); #

# Foreign keys for table tb_reply #

ALTER TABLE `tb_reply`

ADD CONSTRAINT `tb_reply_ibfk_1` FOREIGN KEY (`employeeID`) REFERENCES `tb_employee` (`employeeID`),

ADD CONSTRAINT `tb_reply_ibfk_2` FOREIGN KEY (`messageID`) REFERENCES `tb_message` (`messageID`);

13

第6章程序界面说明

6.1系统演示

打开浏览器在首页输入http://localhost/cdutmanage/index.jsp,打开系统首页。 首页

在首页中能够显示用户的身份信息及当前最新的消息列表,如果要显示用户的身份信息就必须先进行身份验证,单击首页导航栏的“身份识别”链接,页面将跳转到身份识别页,在该页面中输入用户的编号以及预设的系统口令,单击“提交”按钮即可完成身份识别,识别完成后,系统将跳转到首页,并显示员工的身份信息,如6.1.1图所示。

图6.1.1

登录界面

登录页面输入用户的编号和口令,如6.1.2图所示。

14

图6.1.2

消息列表界面

消息列表页面中列出了当前最新的5条消息,如果需要查看其他消息,可以使用“上一页”,“下一页”链接。如果希望查看消息的内容,只需要单击消息的标题即可进入消息的详细内容页面,如6.1.3图所示。

图6.1.3

发布消息的界面

可以单击导航栏中的“发布新消息”链接来发布消息。在发布消息时,需要填写消息标题和消息内容两部分内容,对于消息内容可以使用编辑器调整字体大小、颜色、背景颜色等,还可以插入表情图片,如6.1.4图所示。

15

图6.1.4

消息内容界面

在消息列表里单击消息标题,即可跳转到详细消息的页面,其中领导批复的内容自动变成红色字体。如6.1.5图所示

图6.1.5

6.2文件夹组织结构:

如6.2.1图:

16

6.2.1图

文件结构说明:

Src—用于保存Java类的源文件 Com.sanqing.bean—用于保存所有的VO类 Com.sanqing.dao—用于保存所有的数据库操作接口 Com.sanqing.daoImpl—用于保存所有的数据库操作类 Com.sanqing.factory—用于保存所有的数据库操作工厂 Com.sanqing.servlet—用于保存所有的Servlet类 Com.sanqing.util—用于保存所有的工具类 WebRoot Css—用于保存所有CSS文件 Fckeditor—用于保存FCKeditor所需的文件 Images—用于保存所有的图片 WEB-INF Classes—用于保存编译后的class文件 Lib--用于保存项目所需的库文件 此项目用的是JSP Model2模式开发。在Model 2中所有的开发都是以Servlet为主体展开的,由Servlet接收所有的客户端请求,然后根据请求调用相应的JavaBean,并将所有的显示结果交给JSP完成,也就是俗称的MVC设计模式。在本程序中也运用到了工厂设计模式。

MVC设计模式

MVC是一个设计模式,它强制性地使用应用程序的输入、处理和输出分开。MVC设计模式被分成3个核心层,即模型层、显示层和控制层。它们和自处理自己的任务,各层的任务如下。

显示层(View):主要负责接收Servlet传递的内容,并且调用JavaBean,将内

17

容显示给用户。

控制层(Controller):主要负责所有的用户请求参数,判断请求参数是否合法,根据请求的类型调用JavaBean执行操作并将最终的处理结果交由显示层进行显示。

模型层(Model):完成一个独立的业务操作组件,一般都是以JavaBean或者EJB形式进行定义的。

工厂设计模式

在我们实例化对象时,我们就要考虑到使用工厂模式,工厂模式是通过定义一个类,在该类中定义一个静态的供外部调用的方法,该方法返回所需实例化的对象,于是当我们要实例化对象是只需调用该方法就可以了,当所需调用的对象发生变化时外部的代码就不需要修改。

在项目的实体层的基类中的提供创建实例方法时,我们就用到了工厂设计模式,在每次创建实例时,我们都要工厂化一个对象,于是我们把实例化对象放到方法中去完成。当对象包含有参数的构造函数时,外部也不需要添加,可以在工厂内部将参数赋给构造函数,返回该对象,而外部只需要调用该工厂的方法,满足了开闭原则。工厂模式的另一个特点是可以通过条件判断来约束是否返回对象实例,如果不满足条件则返回空值。大大提高了安全性和对对象的控制能力。

18

结束语

这个项目的完整开发使我的基于B/S架构的java web软件开发有了极大的认识,我也认识到数据库永远是软件开发中最重要的一层,数据库在软件开发中的地位就像建造高楼大厦时的底部打地基,是最初的工作也是最关键的工作。在一个强大的数据库的支持下,软件开发会变的非常便利。

通过这个项目的开发,我深深体会到了作为一个软件开发人员的艰辛,我们要做到的不仅仅是完成项目的单一功能需求,我们要开发的事能够适应需求不断变化的软件开发,随着时代的发展,软件系统需要不断的更新,如果每次更新的工作量都大到和重新制作该软件一样的化,这样的软件是没有任何价值的。作为一个初入软件行业的新人,我深深的体会到了这一点。

参考文献

[1]. 李兴华《Java开发实战经典》清华大学出版社 2010 [2]. 李兴华《Java Web开发实战经典》清华大学出版社 2010 [3]. 李兆丰等《Java Web 项目开发案例精粹》电子工业出版社 2010 [4]. 胡孔法《数据库原理及应用》机械工业出版社 2010

19

本文来源:https://www.bwwdw.com/article/sttw.html

Top