学校图书管理系统的开发
oper borrownum
varchar int
30 4
否 否
操作员 被借次数
表4-8 tb_bookkifo(图书信息)表
图书借阅和归还信息表tb_borrowandback,如表4-9所示。
字段名 id readid bookcode borrowTime ygbackTime sjbackTime borrowoper backoper isback
数据类型 varchar varchar varchar smalldatetime smalldatetime smalldatetime varchar varchar bit
长度 30 20 30 4 4 4 30 30 1
主键 是 否 否 否 否 否 否 否 否
描述 借书编号 读者编号 图书条形码 借书时间 应该还书时间 实际还书时间 借书操作 还书操作 是否归还
表4-9 tb_borrowandback(图书借阅和归还信息)表
权限信息表tb_purview,如表4-10所示。
字段名 id syset readset bookset borrowback syaquery
数据类型 varchar bit bit bit bit bit
长度 50 1 1 1 1 1
主键 是 否 否 否 否 否
描述 用户编号 系统设置 读者管理 图书管理 图书借还 系统查询
表4-10 tb_purview(权限信息)表
5 图书管理系统详细设计
5.1 系统流程分析
根据开发图书管理系统的需求分析,本系统设计了三种用户,分别为系统管理员、教师和学生。
18
学校图书管理系统的开发
系统要求有系统管理员用户,我们设定系统管理员,当系统管理员使用帐户登录后,需要查看有关图书的一系列的信息,管理员可以通过系统导航菜单进入读者管理界面、图书管理界面、图书借还界面、系统查询界面、排行榜界面,在读者界面中,管理员添加和修改学生或教师信息、用户可以查看自己信息,在图书管理界面管理员可以添加和修改图书信息、用户可查看图书,在图书借还界面完成读者借书还书的操作,系统查询界面管理员可以查看借出去的图书信息及库存的信息、用户可以查找自己的所需的图书,排行榜界面主要是可以让用户知道哪些图书受到读者的喜爱。读者(老师和学生)使用读者帐号登陆系统后,可以查询自己所需要的图书的信息、也可以查询自己个人的基本信息及图书的借还信息,还能查看排行榜的信息。读者的借书和还书过程是通过管理员完成的。 5.2 主要模块的运行 5.2.1 登陆界面
当用户输入用户名、密码,系统自动将输入的信息和相关数据表中的内容进行比较,如果该用户输入的内容和数据表中的内容相符,则通过验证,此次登录成功;否则登录失败。比较的过程是由浏览器将指令,数据发送到Web服务器,Web服务器通过对数据库进行查询将结果返回到浏览器,从而端显示成功的消息,用户只有成功登陆系统后才能进行一系列的操作,如下图5-1所示。
5-1 图书管理系统登陆界面
5.2.2 图书信息管理模块
19
学校图书管理系统的开发
图书信息管理模块主要分为查看图书信息页面和添加修改图书信息页面,用户可以在查看图书信息页面查看图书的基本信息,管理员也可以看这些信息,并且可以通过单击“添加图书信息”这个超级链接或GridView控件中的“详情”超级链接转到添加或删除图书信息界面,并在该页中添家或修改图书信息,如图5-2与5-3所示。
图5-2 查看图书信息界面
图5-3 添家或修改图书信息界面
图书信息管理模块的实现,主要是使用了ADO.NET操作数据库技术。 在使用ADO.NET技术操作数据库时,主要用到了Connection、Command、DataAdaper和DataSet4个对象重要负责在Connection对象主要负责连接数据库,Command对象主要负责生成并执行SQL语句,DataAdaper对象主要负责在Command对象执行完SQL语句后生成并填充DataSet和DataTable,而DataSet对象主要负责存取和更新数据。
20
学校图书管理系统的开发
5.2.3 图书借还信息模块
图书借还管理模块主要分为图书借阅页面和图书归还页面,用户可以在通过这个模块查看图书的借阅和归还信息。管理员可以在图书通过这个模块来完成读者借和还书的操作,如图5-4与5-5所示。
图5-4 图书的借阅管理
图5-5 图书归还管理
实现图书的借还功能主要用到了GridView模板列技术。
5.3 系统开发的遇到的相关问题及解决
5.3.1 图书管理系统索引
图书管理系统开发中存在大量的数据和信息检索,怎样更好的检索数据和信息操作是保证检索速度的提高和数据的分页显示,主要考虑了以下几个方面:
(1)设计逻辑结构时充分考虑冗余量和可处理性两方面的要求,在接受冗余量的提下,尽量减少表的连接操作。
(2)关系的大小对查询的影响也是很大的,因此为了提高数据库的查询速度,
21
学校图书管理系统的开发
减小系的大小和数据量也是必要的。
(3)建立合理的索引结构。索引相当于一个映射机构,将键值转换成相对应的 记录地址,形成索引文件。
索引设计是数据库物理设计的基本问题,也是较困难的问题,建立索引可以极大地提高系统的查询速度,但是同时做Insert、Update、Delete操作时会降低速度,因为做这些操作的同时需要更新索引,所以不能对数据库中所有的表都建立索引。比如满足下列条件之一的不易建立索引:不出现或很少出现的属性或表、属性分布严重不均的属性、经常更新的属性或表、过长的属性、太小的表等。
满足下列条件之一的可以考虑建立索引:主键和外键都建立索引、对于以读为主或只读的表,只要需要,且存储空间允许,可以减少连接开销、对于等值查询(即查询条件以等号为比较符),最好建立索引、对查询范围(即查询条件>,<,≤,≥为比较符),最好建立索引、有些查询可以由检索直接得到结果,不必访问数据块。
根据实际需要,读者信息表,图书信息表,图书借还信息表,权限信息,管理员信息表等都建立索引,合理使用缓冲区。 5.3.2 如何验证输入的字符串
在图书管理系统的开发过程中,需要对一些输入的字符串进行验证,例如金额、电话号码、E-mail等,由于许多模块都需要用到这些验证,因此可以将其写入到一个公共类中然后在其他的页面中直接调用即可。C#中对字符串进行验证时,可以使用Regex类,要使用正则表达式验证输入的字符串,如验证输入的字符串是否为E-mail的地址格式的实现方法。代码如下: #region 验证输入为Email ///
///
public bool validateEmail(string str) {
return Regex.IsMatch(str,
@\
22