基于WEB模式的图书馆讲座管理系统的设计与实现

2007-06-18 03:27     字号:

                   陈  征 (福建省图书馆  福州  350001)
    一、引言
    图书馆讲座管理系统由讲座管理、讲师管理、读者/志愿者管理三部分组成,能够为用户提供充足的
信息和快捷的查询手段,是读者中心讲座活动管理上不可缺少的。一直以来,福建省图书馆读者活动中心
都是使用传统人工的方式管理讲座信息,这样的管理方式效率低,保密性差,时间一长还会产生大量的冗
余文件和数据,给查找、更新和维护工作带来很大的困难。鉴于此,笔者应读者活动中心的要求,设计了
基于WEB模式的《图书馆讲座管理信息系统》,于不久前完成调试,正式移交使用。本文简要介绍该系统的
设计与实现的方法,与大家交流探讨。
    二、系统分析与设计系统
    1、系统目标及系统优点
    该系统的目标是要实现一个基于WEB的图书馆讲座管理系统,让读者活动中心通过浏览器简单地点击
几下,就能实现讲座管理信息的查询与修改。该系统采用Browser/Server体系结构,这种体系结构具有许
多优点:①系统所有的应用程序都放在服务器端执行,浏览器只接受服务器返回的结果,减少了网络中数
据的传输量,提高了系统运行效率。②系统非常容易维护,不需要安装任何为客户端开发的软件,客户端
的表示逻辑都是从Web服务器上下载,因此客户端几乎无需维护。③系统比较容易开发和实施,基于Web的
B/S系统开发一般分为Web页面风格制作和Web应用开发,这两项技术都已经非常成熟,这样就能加大开发
速度,高效的完成和实现系统所需的功能。④系统具有良好的可扩充性,由于它采用了Internet技术,因
而具备了Internet的开发性和可扩充性。
  2、系统框架(如图1)
  图1
  3、功能模块设计
  系统用户在登陆系统时使用同一个登陆页面,在登陆页面中输入用户名、密码和验证码进入不同系统子
模块:
    ① 讲座信息管理子模块。该模块用于讲座信息的录入、修改、删除、查询,提供讲座信息列表,设定
讲座状态,使读者中心的管理人员对已经举办和即将举办的讲座信息一目了然,可直接在某一讲座下添加
该讲座的讲师、读者、志愿者信息,配有读者清单的打印功能。
    ② 讲师信息管理子模块。该模块用于存放讲师基本信息,进入该系统后显示在我馆举办讲座的讲师
信息列表,点击讲师姓名进入讲师详细信息,如:讲师简介,联系方式,著作等。并显示讲师在我馆主持
讲座历史信息(如该讲师在何时何地演讲过几次,演讲的题目,联系方式,背景资料等。)
    ③ 读者/志愿者信息管理子模块。该模块是用于读者中心管理读者/志愿者信息时使用,在输入基本
信息时,添加了历史查询的功能,已经参加过讲座的读者信息不需重复输入,只需进行相应的选择就可以
完整的设定。
    ④ 查询检索功能模块。该模块是为读者中心提供快捷灵活的多条件查询手段,如读者志愿者查询,
可根据姓名、性别、职业、 年龄、职称、学历等诸多条件组合查询。迅速定位到符合条件的读者记录。
    4、数据库设计
    ACCESS是微软OFFICE的一个组件,它具有界面友好、接口灵活等特点。按照应用的大小,本系统所需
数据库属于中小规模,为了减轻服务器资源负担,同时提高系统效率,便于读者中心管理讲座信息,我选
择ACCESS来存放数据表,并给数据库命名tg.mdb。表结构设计如下:
    ① 存放基本信息的表。包括系统操作用户表、讲座内容信息表、讲师资源库表、读者志愿者信息表。
用来保存基础数据。具体如下:
      a、t_user操作用户表
      us_id自动编号   
      us_namenvarchar32姓名
      us_passnvarchar32密码
      us_shownvarchar64显示用
      us_grpnvarchar16组(备用)
      b、t_project讲座内容信息
      pr_id自动编号
      pr_snnvarchar64序列号
      pr_namenvarchar255主题
      pr_infotext一般信息   
      pr_datedate日期
      pr_bztext备注
      pr_statnvarchar12状态
      c、t_provider讲师资源库
      pv_id自动编号
      pv_namenvarchar255名称
      pv_agenvarchar12年龄
      pv_sexnvarhcar2性别
      pv_zcnvarhcar64职称
      pv_linknvarchar255联系方式
      pv_yxnvarchar255院校
      pv_bznvarchar255备注
      pv_datedate日期
      d、t_cust读者/志愿者信息
      cu_id自动编号
      cu_namenvarchar32姓名
      cu_agenvarchar12年龄
      cu_sexchar2男/女
      cu_zynvarchar64职业
      cu_telenvarchar255电话
      cu_mailnvarchar255邮箱
      cu_QQnvarchar255QQ号
      cu_xl nvarchar255学历
      cu_zc nvarchar255职称
      cu_bztext备注
      cu_datedate录入日期
      ② 数据关联表
    为了让每个表中的记录和其他的表中记录进行关联,另外构造了若干个关联用表。并建立索引以加快
查询速度。具体如下:
      e、t_actor参加信息
      ac_id自动编号
      ac_pidint讲座id
      ac_uidint读者id
      ac_bztext备注
      f、t_js讲师讲座信息
      ac_id自动编号
      ac_pidint讲座id
      ac_uidint讲师人员id
      ac_bztext备注 
      g、t_zy讲座志愿者信息
      ac_id自动编号
      ac_pidint讲座id
      ac_uidint志愿者id
      ac_bztext备注
    三、关键技术分析
    本系统技术上关键在于多条件查询模块的实现。
    目前,在应用程序中编写和使用的SQL语句有两种:即静态SQL语句、动态SQL 语句。静态SQL语句
是在程序设计阶段,将SQL命令文本作为SQL属性值设置。而动态SQL语句编程是SQL语句中包含一系列的
参数,在程序运行过程中各参数值是可变的,即可以动态地给SQL语句中的参数赋值。与静态SQL相比,动
态SQL具有占用资源少、高性能、扩展性能好的优点。因此本系统中使用动态SQL来实现多条件查询检索功
能模块。现将这一段代码拿出来分析:   
    首先判断用户输入检索词,根据检索词用动态SQL生成动态查询条件:<%
    sub lu_showList()
      dim cnt, mx, wh
      sql = “select *,(select count(ac_pid)
      from t_zy where ac_uid=cu_id ) as zy_
      cnt from t_cust ”     
      wh = “”
      if cu_name<> “” then wh = wh &“and cu_name like '%”& cu_name &“%' ”    
      if cu_sex<> “” then wh = wh &“and cu_sex like '%”& cu_sex &“%' ” 
      if cu_zy<> “” then wh = wh &“and cu_zy like '%”& cu_zy &“%' ”    
      if cu_age<> “” then wh = wh &“and cu_age like '%”& cu_age &“%' ” 
      if cu_xl<> “” then wh = wh &“and cu_xl like '%”& cu_xl &“%' ”    
      if cu_zc<> “” then wh = wh &“and cu_zc like '%”& cu_zc &“%' ”    
      if cu_tele<> “” then wh = wh &“and cu_tele like '%”& cu_tele &“%' ”
      if cu_mail<> “” then wh = wh &“and cu_mail like '%”& cu_mail &“%' ”
      if cu_QQ<> “” then wh = wh &“and cu_QQ like '%”& cu_QQ &“%' ”
      if cu_bz<> “” then wh = wh &“and cu_bz like“%”& cu_bz &“%'”
      if wh <> “” then
      sql = sql &“ Where ”& right(wh,len(wh) - 3)
      else
      exit sub
      end if
      'set rs = conn.execute( sql )
      set rs=server.CreateObject(“Adodb.RecordSet”)
      rs.open sql,conn,1
    之后将动态查询的结果分页显示,反馈给用户(这里就不再赘述了)
    四、安全方面
    开发基于WEB的程序,安全是一个必须要考虑的重要问题。
    1、在进入系统时,使用了不低于6个字符的密码和4位系统随机产生的验证码,以防止恶意猜测密码而
进入系统。
    2、对于进入系统后的每一个ASP页面,都使用Session进行识别,以防止恶意跳过登陆网站直接进入后
台页面,防止不同权限的用户跨权访问。
    五、后记
    使用本系统与原来的手工操作相比,读者中心的工作人员可以很方便的了解以前每一次讲座、讲师、读
者、志愿者的情况,在此基础上,进行有效的分析统计。极大的提高了管理讲座档案的效率,对读者中心研
究我馆讲座发展轨迹,总结经验得失,抽调有关材料及统计、举办新的讲座等都带来极大的方便。
参考文献
1 刘亚虹.Access 2000中文版命令及功能速查手册.上海:上海交通大学出版社,2000
2 王秀文.档案管理基础.北京:高等教育出版社,2000
3 荣钦科技.ASP+Dreamweaver MX 2004数据库网站开发与实例.北京:清华大学出版社,2004
4 林宏基 .Web开发技术教程:ASP/ASP.NET/JSP程序设计.北京:北京大学出版社,2005
5 陈雍.Dreamweaver MX 2004实用教程.北京:科学出版社,2005
6 屈喜龙,李正庚.ASP+Access开发动态网站实例荟萃.北京:机械工业出版社,2006
 (收稿日期:2006-09-17。龚永年编发。)

附件下载

相关链接