基于PHP的图书馆管理系统的设计与开发.docx
《基于PHP的图书馆管理系统的设计与开发.docx》由会员分享,可在线阅读,更多相关《基于PHP的图书馆管理系统的设计与开发.docx(36页珍藏版)》请在冰豆网上搜索。
基于PHP的图书馆管理系统的设计与开发
摘要
虽然目前很多大型的图书馆已经有一整套比较完善的管理系统,但是在一些中小型的图书馆中,大部分工作仍需由手工完成,工作起来效率比较低,管理员不能及时了解图书馆内各类图书的借阅情况,读者需要的图书难以在短时间内找到,不便于动态及时地调整图书结构为了更好地适应当前读者的借阅需求,解决手工管理中存在的许多弊端,越来越多的中小型图书馆正在逐步向计算机信息化管理转变。
本系统设计实现了基于web的图书管理系统,该系统采用现今比较流行的PHP语言,结合MYsql数据库,实现了图书信息的存储查询等功能。
系统不仅维护方便,节省了图书馆的资源,方便图书馆进行管理图书,本系统主要为图书管理者而设计,为学校和学生提供提供科学化图书管理数据的平台。
系统主要功能包括:
用户的管理,图书的增删,图书的检索等。
关键词:
数据库,PHP,MySQL,数据库技术,图书管理
前言
随着图书的流通,手工管理图书越来越越不适应现在形势的发展。
为提高效率,摆脱人工管理带来的一系列的问题,进而改善管理员的工作重心和工作强度。
图书管理系统为图书馆的发展提供了大量的、关键性的数据,图书馆根据这些数据,及时作出决策,进行调整使之能够跟好地为广大读者服务。
从上述描述中可以发现,传统的管理流程存在不足。
首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。
为此,图书管理系统需要为图书馆解决藏书问题,提供快速的图书信息检索功能、快捷的图书借阅、归还流程。
第一章开发背景和相关工具的基本理论
1.1关于图书馆管理系统的开发背景
随着社会的发展和经济的进步,科学技术的飞速发展把人类社会推向了一个崭新的时代——信息时代。
学校是人们学习知识、获取信息的主要场所。
由于我国的教育行业飞速发展,目前各类学校的学生人数与日俱增,随之而来的是学校所拥有的图书越来越多,在这种情况下,对图书的管理和查询以及对借阅者的管理都变得非常困难,利用计算机设计的图书馆管理系统对其进行辅助管理,是一种很好的方法。
图书管理系统的开发和应用,可以提高学校的管理水平以及办公效率,为图书馆的图书信息的管理提供了一个良好的工具,化简了繁琐的工作模式,从而使得学校的管理更加规范化和科学化。
良好的管理信息系统节省了大量的人力和物力,避免了大量重复性工作。
它作为计算机应用的一部分,使用计算机对图书信息进行管理,有着手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高图书管理的效率,也是学校科学化、正规化管理的重要条件。
1.2关于PHP的说明
PHP(PHP:
HypertextPreprocessor的缩写,中文名:
“超文本预处理器”)是一种通用开源脚本语言。
语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。
PHP的文件后缀名为*.PHP。
PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。
它可以比CGI或者Perl更快速地执行动态网页。
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率高;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
开放源代码,所有的PHP源代码事实上都可以得到。
免费性,和其它技术相比,PHP本身免费且是开源代码。
快捷性,程序开发快,运行快,技术本身学习快。
嵌入于HTML:
因为PHP可以被嵌入于HTML语言,它相对于其他语言。
编辑简单,实用性强,更适合初学者。
跨平台性强、由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、MacOS下。
效率高,PHP消耗相当少的系统资源。
图像处理,用PHP动态创建图像,PHP图像处理默认使用GD2。
且也可以配置为使用imagemagick进行图像处理。
面向对象,在PHP4,PHP5中,面向对象方面都有了很大的改进,PHP完全可以用来开发大型商业程序。
专业专注,PHP支持脚本语言为主,同为类C语言。
1.3数据库管理系统概论
数据库管理系统(DatabaseManagementSystem)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。
它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。
它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。
大部分DBMS提供数据定义语言DDL(DataDefinitionLanguage)和数据操作语言DML(DataManipulationLanguage),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
这里主要使用mysql数据库,MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
1.4Apache的简单介绍
Apache是世界使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
Apache具有一部分特点如下:
支持最新的HTTP/1.1通信协议
拥有简单而强有力的基于文件的配置过程
支持通用网关接口
支持基于IP和基于域名的虚拟主机
提供用户会话过程的跟踪
支持多种方式的HTTP认证
1.5Notepad++的简单介绍
Notepad++是一套非常有特色的自由软件的纯文字编辑器(许可证:
GPL),有完整的中文化接口及支援多国语言撰写的功能(UTF8技术)。
它的功能比Windows中的Notepad(记事簿)强大,除了可以用来制作一般的纯文字说明文件,也十分适合当作撰写电脑程序的编辑器。
Notepad++不仅有语法高亮度显示,也有语法折叠功能,并且支援宏以及扩充基本功能的外挂模组。
Notepad++是一款非常有特色的编辑器,是开源软件,可以免费使用。
支持的语言:
PHP,C,C++,Java,C#,XML,Ada,HTMLASP,AutoIt,等语言。
其特点如下:
1、所见即所得功能、语法高亮、字词自动完成功能,支持同时编辑多重文档;支持自定义语言;
2、对于HTML网页编程代码,可直接选择在不同的浏览器中打开查看,以方便进行调试;
3、自动检测文件类型,根据关键字显示节点,节点可自由折叠/打开,可显示缩进引导线,使代码富有层次感;
4、可打开双窗口,在分窗口中又可打开多个子窗口,允许快捷切换全屏显示模式(F11),支持鼠标滚轮改变文档显示比例;
5、可显示选中文本的字节数,并非普通编辑器所显示的字数;提供了一些实用工具,如邻行互换位置、宏功能等。
第二章系统分析和总体设计
2.1需求分析
通过计算机对图书进行管理,不仅为图书馆的管理注入了新的生机,而且在运营过程中节省了大量的人力物力财力和时间,可以提高图书馆的效率,还为图书馆在读者群众树立了一个全新的形象,为图书馆日后的发展奠定一个良好的基础。
通过对一些大型图书馆的时间考察分析,并结合图书馆的要求及实际的需求,要求本系统就有以下功能:
网站设计要求美观大方、个性化,功能全面,操作简单。
要求实现基础信息的管理平台。
要求对所有读者进行管理。
要求实现图书借阅排行、了解当前的畅销书。
图书分类详尽,可按不同类别查看图书信息。
提供快速的图书信息、图书借阅检索功能,保证数据查询的灵活性。
实现图书借阅、图书续借、图书归还的功能。
要求图书借阅、续借、归还时记下每一笔记录的操作员。
实现低图书借阅、续借、归还过程的全部数据信息跟踪。
提供借阅到期提醒功能,使管理者可以及时了解到已经到达归还日期的图书借阅信息。
提供灵活、方便的权限设置功能,使整个系统的管理分工明确。
具有易维护性和易操作性。
2.2可行性分析
技术可行性。
根据系统功能、性能及实现系统的各项约束条件,现有的技术已较为成熟硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。
同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发。
经济可行性。
本系统建立在PHP开发的基础上,项目开发成本非常小。
并且本系统实施后可以显著提高工作效率。
所以本系统在经济上是可行的。
运行可行性。
本系统采用完全的图形化界面,充分得考虑了用户对系统的易于管理,管理者方便查询设备信息效率,完全满足了使用者的要求。
该系统应该提供简单的操作界面,能够快速的实现查书、借书、还书功能,该系统主要使用通用的浏览器因此便于系统的移植和使用。
2.3系统设计
2.3.1系统功能分析
根据前面所作的需求分析及用户的需求可以得出,图书馆管理系统实施后,应达到以下功能目标:
系统设置:
包括图书馆信息、管理员设置、书架设置。
读者管理:
包括读者类型管理、读者档案管理。
图书档案管理:
对图书的添加删除管理。
图书借还:
包括图书借阅、图书续借、图书归还。
系统查询:
包括图书档案查询、图书借阅查询、借阅到期提醒。
更改口令:
使管理员更改登陆口令。
2.3.2系统功能结构
根据图书馆管理系统的特点,可以将其分为系统设置、读者管理、图书档案管理、图书借还、系统查询等5个部分,其中各个部分及其包括的具体功能模块如图2-1所示:
图2-1图书馆管理系统功能结构图
2.3.3系统流程图
根据系统功能分析,图书馆管理系统的流程如图:
图2-2图书馆管理系统流程图
2.4数据库设计
图书馆管理系统是一个数据库卡法的WEB网站。
下面对图书馆使用的数据库进行分析和介绍。
2.4.1数据库概念设计
上面对系统进行了需求分析、系统设计、规划出管理系统中使用的数据库实体分别为图书档案实体、读者档案信息实体、借阅档案信息实体、归还档案信息实体和管理员信息实体。
下面是关键实体的E-R图。
1.图书档案实体
图书档案实体包括编号、条形码、书名、类型、作者、译者、出版社、价格、书架、录入时间和操作员等属性。
图书档案实体的E-R图如图2-3所示。
图2-3图书档案实体E-R图
2.读者档案实体
读者档案实体包括编号、姓名、性别、条形码、职业、出生日期、有效证件、证件号码、电话、电子邮件、登记日期、操作员、类型和备注等属性。
读者档案实体的E-R图如图2-4所示。
图2-4读者档案实体E-R图
3.借阅档案实体
借阅档案实体包括编号、读者编号、图书编号、借书时间、应还时间、操作员和是否归还等属性。
借阅档案实体的E-R图如图2-5所示。
图2-5借阅档案实体E-R图
4.归还档案实体
归还档案实体包括编号、读者编号、图书编号、归还时间和操作员等属性。
归还档案实体的E-R图如图2-6所示。
图2-6归还档案实体E-R图
5.管理员档案实体
管理员实体包括编号、用户名、密码。
管理员实体的E-R图如图2-7所示。
图2-7管理员档案实体E-R图
2.4.2创建数据库及数据表
根据实际情况及对用户需求的分析,图书馆管理系统db_library数据库主要包含如下11个表,如表2-1所示。
表2-1数据库总表
表
类型
整理
说明
tb_bookcase
MyISAM
gb2312_chinese_ci
图书书架信息表
tb_bookinfo
MyISAM
gb2312_chinese_ci
图书信息表
tb_booktype
MyISAM
gb2312_chinese_ci
图书类型信息表
tb_borrow
MyISAM
gb2312_chinese_ci
图书借阅信息表
tb_library
MyISAM
gb2312_chinese_ci
图书馆信息表
tb_manager
MyISAM
gb2312_chinese_ci
管理员信息表
tb_parameter
MyISAM
gb2312_chinese_ci
参数设置信息表
tb_publishing
MyISAM
gb2312_chinese_ci
出版社信息表
tb_purview
MyISAM
gb2312_chinese_ci
权限信息表
tb_reader
MyISAM
gb2312_chinese_ci
读者信息表
tb_readertype
MyISAM
gb2312_chinese_ci
读者类型信息表
结合上表就各个数据表的设计入下表。
表2-2tb_bookcase(图书书架信息表)
字段
类型
整理
Null
默认
额外
说明
id
int(10)
否
auto_increment
自动编号ID
name
varchar(30)
gb2312_chinese_ci
是
NULL
表2-3tb_bookinfo(图书信息表)
字段
类型
整理
Null
默认
额外
说明
barcode
varchar(30)
gb2312_chinese_ci
否
图书条形码
bookname
varchar(70)
gb2312_chinese_ci
是
NULL
图书名称
typeid
int(10)
是
NULL
图书类型
author
varchar(30)
gb2312_chinese_ci
是
NULL
图书作者
translator
varchar(30)
gb2312_chinese_ci
是
NULL
图书译者
ISBN
varchar(20)
gb2312_chinese_ci
是
NULL
图书ISBN
price
float(8,2)
是
NULL
图书定价
page
int(10)
是
NULL
图书页码
bookcase
int(10)
是
NULL
图书书架
storage
int(10)
是
NULL
图书库存
inTime
date
是
NULL
入库时间
poerator
varchar(30)
gb2312_chinese_ci
是
NULL
操作员
del
tinyint
(1)
是
NULL
是否删除
id
int(11)
是
NULL
auto_increment
自动编号ID
表2-4tb_booktype(图书类型信息表)
字段
类型
整理
Null
默认
额外
说明
id
int(10)
否
auto_increment
自动编号ID
typename
varchar(30)
gb2312_chinese_ci
是
NULL
图书类型
days
int(10)
是
NULL
借阅期限
表2-5tb_borrow(图书借阅信息表)
字段
类型
整理
Null
默认
额外
说明
id
int(10)
否
auto_increment
自动编号ID
readerid
int(10)
是
NULL
读者ID编号
bookid
int(10)
是
NULL
图书ID编号
borrowTime
date
是
NULL
图书借阅时间
backTime
date
是
NULL
图书归还时间
operator
varchar(30)
gb2312_chinese_ci
是
NULL
操作员
ifback
tinyint
(1)
是
0
是否归还
表2-6tb_library(图书馆信息表)
字段
类型
整理
Null
默认
额外
说明
id
int(10)
否
auto_increment
自动编号ID
libraryname
varchar(50)
gb2312_chinese_ci
是
NULL
图书馆名字
curator
varchar(10)
gb2312_chinese_ci
是
NULL
图书馆馆长
tel
varchar(20)
gb2312_chinese_ci
是
NULL
图书馆电话
address
varchar(100)
gb2312_chinese_ci
是
NULL
图书馆地址
email
varchar(100)
gb2312_chinese_ci
是
NULL
图书馆邮箱
url
varchar(100)
gb2312_chinese_ci
是
NULL
图书馆连接
createDate
date
是
NULL
建馆日期
introduce
text
gb2312_chinese_ci
是
NULL
简介
表2-7tb_manager(管理员信息表)
字段
类型
整理
Null
默认
额外
说明
id
int(10)
否
auto_increment
自动编号ID
name
varchat(30)
gb2312_chinese_ci
是
NULL
管理员名字
ped
varchat(30)
gb2312_chinese_ci
是
NULL
管理员密码
表2-8tb_parameter(参数设置信息表)
字段
类型
整理
Null
默认
额外
说明
id
int(10)
否
auto_increment
自动编号ID
cost
int(10)
是
NULL
费用
validity
int(10)
是
NULL
有效期限
表2-9tb_publishing(出版社信息表)
字段
类型
整理
Null
默认
额外
说明
ISBN
varchat(20)
gb2312_chinese_ci
是
NULL
图书ISBN
pubname
varchat(30)
gb2312_chinese_ci
是
NULL
出版社名字
表2-10tb_purview(权限信息表)
字段
类型
整理
Null
默认
额外
说明
id
int(11)
否
0
auto_increment
自动编号ID
sysset
tinyint
(1)
gb2312_chinese_ci
是
0
系统设置
readerset
tinyint
(1)
gb2312_chinese_ci
是
0
读者设置
bookset
tinyint
(1)
gb2312_chinese_ci
是
0
图书设置
borrowback
tinyint
(1)
gb2312_chinese_ci
是
0
借还设置
sysquery
tinyint
(1)
gb2312_chinese_ci
是
0
系统查询
表2-11tb_reader(读者信息表)
字段
类型
整理
Null
默认
额外
说明
id
int(10)
否
auto_increment
自动编号ID
name
varchat(20)
gb2312_chinese_ci
是
NULL
读者姓名
sex
varchat(4)
gb2312_chinese_ci
是
NULL
性别
barcode
varchat(30)
gb2312_chinese_ci
是
NULL
读者条形码
vocation
varchat(50)
gb2312_chinese_ci
是
NULL
读者职业
birthday
date
是
NULL
出生日期
paperType
varchat(10)
gb2312_chinese_ci
是
NULL
读者证件
paperNO
varchat(20)
gb2312_chinese_ci
是
NULL
证件号码
tel
varchat(20)
gb2312_chinese_ci
是
NULL
读者电话
email
varchat(100)
gb2312_chinese_ci
是
NULL
E-mail地址
createDate
date
是
NULL
办卡时间
operator
varchat(30)
gb2312_chinese_ci
是
NULL
操作员
remark
mediumtext
是
NULL
备注
typeid
int(11)
是
NULL
读者类型
表2-12tb_readertype(读者类型信息表)
字段
类型
整理
Null
默认
额外
说明
id
int(10)
否
auto_increment
自动编号ID
name
varchat(50)
gb2312_chinese_ci
是
NULL
读者类型名称
number
int(4)
是
NULL
读者类型编号
第三章系统详细设计
3.1首页设计
管理员通过“系统登录”模块的验证后,可以登录到图书馆管理系统的首页。
系统首页主要包括导航栏、排行榜和版权信息3部分。
其中,导航栏中的功能菜单将根据登录管理员的权限进行显示。
例如,系统管理员账号:
zhangxiaopeng,密码:
zhangxiaopeng登陆后,将拥有整个系统的全部功能,因为它是超级管理员。
导航栏:
可以进行借还,信息查询等操作。
排行榜:
可以清晰的了解图书借阅情况,排行是按借阅的次数进行降序排列。
版本信息:
图书的版本信息一目了然,包括图书条形码、图书名称、图书类型、书架、出版社、作者、定价和借阅次数。
3.2管理员模块设计
管理员模块主要包括添加管理员信息、管理员权限设置、删除管理员和更改口令等4个功能。
管理员模块的框架如图3-1所示。
图3-1管理员模块的框架图
添加