的系统流程图如图3.1所示。[10]
图2.1 图书馆管理系统的系统流程图
第五节 设计模式
设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。本系统开发采用目前一种目前广泛流行的软件设计模式MVC。MVC(Model-View - Controller)应用程序结构被用来分析分布式应用程序的特征。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
MVC模式的出现,很好的解决了传统开发WEB应用方式中存在的问题。M代表模型(Model),包含完成任务所需要的所有的行为和数据;V代表视图(View)界面,显示模型提供的数据;C代表控制器(Controller),它将模型映射到界面中,处理用户的输入并响应请求。其模型关系如图所示。在MVC模式中,三层各尽其职、相对独立,各层内部的改变不会影响到其它层,从而降低了数据表达、数据描述和应用操作的耦合度,也能更好的实现开发中的分工,加快工程进度。[11]
第三章 系统总体设计与数据库设计
第一节 系统功能设计:
一、总体功能设计
MyEclipse是比Eclipse更为强大的开发,JSP则是当前最流行的网站开发平台,以J2EE(Java2Platform,EnterpriseEdition)为平台,MySQL同样是当前比较流行的数据库管理软件,利用上述两者以及Struts框架共同完成B/S模式的图书管理系统。根据图书馆管理系统的实际需求,可以将图书馆管理系统划分为日常工作,图书资料的维护,读者资料的维护,查询,系统管理和更改口令6个部分,各个部分的具体功能的系统功能结构图如图3.1所示。
图3.1 系统功能结构图
二、“日常工作”模块设计
图3.2 “日常工作”模块设计结构
(1) 借书处理:记录借阅证的编号和图书编号,每借书一次就在数据库写入一次借书
记录。
(2) 还书处理:主要功能是通过借阅证编号、找到借阅记录,将记还书记录写入数据
中,同时会将用户的借书记录将被删除,并保存在借阅历史记录表当中。
(3) 图书续借:进行续借及相关功能,记录借阅证编号以及图书编号,完成续借过程。
[12]
三、“读者资料维护”模块设计
图3.3 “读者资料维护”模块设计结构
(1) 读者类型管理:对不同类型的读者进行记录管理。 (2) 读者档案管理:对每个读者的信息进行记录。
四、“图书资料维护”模块设计
图3.4 “图书资料维护”模块设计结构
(1) 图书类型设置:对图书的类型进行设置管理,包括新书类型的录入以及对现有
书的类型进行修改甚至删除。
(2) 图书档案管理:对书籍的信息进行录入,包括新书,现有书籍。
五、“查询”模块设计
图3.5 “查询”模块设计结构
(1) 图书资料查询:通过相关信息查询图书,此查询包括:‘图书分类’、‘图书编号’、‘图书名称’、‘作者’、‘出版社’及‘书架’。
(2) 借阅历史记录查询:根据借阅信息。此查询包括:‘借阅证编号’、 ‘图书名称’、‘图书编号’、 ‘读者名称’、‘借书日期’、‘还书日期’。 (3) 借阅到期提醒:根据借阅信息中的日期判断结果。
六、“系统管理”模块设计
图3.6 “系统管理”模块设计结构
(1) 图书馆信息:包括图书馆名称及图书馆相关资料信息的显示。
(2) 管理员管理:包括管理员名称及相关资料信息的录入,密码的修改以及员工信
息的删除,权限设置方便使别人通过网页不能越界查询自己相关信息,系统管理员可以修改自己的密码,并且拥有其他用户所拥有的以及所不拥有的功能。
(3) 书架设置:包括书架名称的录入,修改以及删除功能。
第二节 系统数据库设计
一、数据总体结构设计
整个系统所包括的所有信息包含图书信息、读者信息、图书借阅信息、图书归还信息、管理员信息、读者类型信息、图书类型信息。可将信息抽象为下列系统所需要的数据项和数据结构:
(1) 图书信息(图书编号,图书名称,图书类型,作者,译者,ISBN号,价格,出
版社,所在书架,入库时间,操作员)
(2) 图书类型(图书编号,名称,可借阅天数)
(3) 读者信息(编号,姓名,性别,借阅证编号,读者类型,出生年月,有效证件,
证件号码,登记日期,电话,邮箱,操作员)
(4) 读者类型(名称,可借阅图书本数)
(5) 图书借阅信息(图书编号,读者ID,借出时间,应还时间,是否归还,操作员) (6) 图书归还信息(图书编号,读者ID,归还时间,操作员)
(7) 管理员信息(名称,密码);图书馆书架信息(名称);出版社信息;权限信息 (8) 图书馆信息(编号,名称,馆长,电话,地址,邮箱,创建日期,简介)[13] 在这里使用E-R图描述了图书馆管理系统的数据模型。下图标识涉及的实体及关系。
图3.7 系统E-R 图
本系统数据库采用MySQL数据库,系统数据库名称db-librarySys,共包含11张表,下面给出数据表概要说明及数据表树形结构图,如图3.3所示,包含系统所有数据表。
图3.8 数据表
二、图书信息表结构设计
图书馆馆藏中图书的信息主要在图书信息表中反映出来,在一本书入库时,就会由操作员添加它们的相关信息。系统借助本表来完成图书信息的查询。比如出版社则为出版该书出版社,图书入库时间显示图书进入图书馆的时间。[14]
表的具体结果如下:
表3.1 图书信息表tb_bookinfo
字段名称 barcode bookname author translator ISBN price bookcase press
数据类型 varchar varchar varchar varchar varchar float varchar varchar 字段长度 30 70 30 30 20 8,2 10 70 是否为空 No No Yes Yes No No No No 说明 Key 书名 作者 译者 出版社 图书价格 图书所在书架 出版社
intime operator page date varchar int 30 10 No No Yes 图书入库时间 操作员 图书页码 三、图书类型信息表结构设计
图书总是分为很多类型,比如社科,比如文学,该表的主要内容就是为图书进行分类,可借阅天数反映了该种类型图书的可借阅天数。表的具体结构设计如下:
表3.2 图书类型信息表tb_booktype 字段名称 ID bookname days 数据类型 int varchar int 字段长度 10 30 10 是否为空 No No No 说明 Key 书名 可借阅天数 四、读者信息表结构设计
该表设计了就是为了读者进行分类,而且不同类型的读者可借阅图书的数据是不同的。在此表中,还可以对各种类型读者的可借阅图书数据进行修改。表的具体结构设计如下:
表3.3 读者信息表tb_reader
字段名称 Id name sex barcode readertype tel e-mail paperType PaperNO. birthday 数据类型 int varchar varchar varchar varchar varchar varchar varchar Varchar date 字段长度 10 20 4 30 11 20 100 10 20 是否为空 No No No No No Yes Yes No No Yes 说明 Key 姓名 性别 借阅证编号 读者类型 电话 邮箱 证件类型 证件号码 出生日期