论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
3.2.3数据库设计
本系统共使用3个数据表:
LibBooks表包含与图书有关的所有数据。该表中的字段内容的图书的通用信息。另外,对于已经出借的图书,该表中还包含借阅该图书的用户的ID号,以及图书的状态。
表视图如下:
字段名 意义 字段类型 字段名 意义 字段类型
bookid 书号(主键) 数字 (no null) status 状态 文本
title 书名 文本 checkedoutto 用户id 数字
author 著者 文本 reservedby 用户学号 数字
Subject 主题 文本 description 描述 文本
Isbn Isbn号 文本 keywords 关键字 文本
LibCategories 表包含Library中的所有类别,在访问者浏览图书列表时将会用到这些类别。每个类别都可以作为另外类别的父类别。有一个特殊的类别,Top-Level,没有出现在类别列表中,但是可以作为其他任何类别的父类别。
字段名 意义 字段类型
Categoryname 类别 文本(noll)
parentcategory 父类别 文本(noll)
LibEmps表包含可以访问图书馆网站的用户信息。该表包含一些通用的信息字段,比如用于进入图书馆的用户密码等。
字段名 意义 字段类型 字段名 意义 字段类型
empid 用户id (主键no null) 数字 password 用户密码 文本
Empname 用户姓名 文本 manager 员代号 数字
emailaddress 用户邮箱 文本
图书馆数据库的数据关系如图9-22所示。其中表LibEmps和表Lib Categories与表LibBooks之间都是一对多的关系。每个雇员都可以借阅多本图书,每个类别都可以包含多本图书。
3.2.3界面设计与重点代码的设计
网上图书馆系统有两种用户,一是管理员。另一种是只允许使用图书馆系统,而没有管理功能的一般用户。访问者进入网站,首先要进行登录,如下图所示。登录页面(index.asp访问者输入E-mail地址和密码来登录,然后单击“登录”按钮。输入的数据提交后与数据库中的用户表进行匹配。
(转载自中国科教评价网http://www.nseac.com)
图书馆菜单页面
图书馆菜单页面包含指向其他4个页面的链接:管理页面、搜索页面、图书列表页面和主页面。还有一个可显示用户所借书籍的按纽。如果访问者是图书馆管理员,则菜单界面如图所示。如果访问者不是图书馆管理员,则看到如图所示的界面。非管理员的访问者的界面上没有指向管理员菜单页面的链接。
实现办法:访问者登录时在登录页面上的创建的会话变量Session 用于从数据库中获取访问者的有关信息,表示它是否是管理员。如果值为1,就表明访问者是一个管理员,则用如下代码写入一个指向管理员页面的链接:
<% If Session("Manager") = 1 then %>
<A HREF="../html/management_menu.asp">管理员菜单</A>
<% end if %>
通过按纽B1是否为空来判断要不要显示用户所借图书,利用一个记录集来获取访问者已经借出了的所有图书的列表。 (转载自http://zw.NSEaC.com科教作文网)
if NOT isempty(Request.Form("B1")) then
set RSBooks = conn.Execute ("select BookID, Title from LibBooks where " _
& "CheckedOutTo = " & Session("EmpID"))
end if
再用循环语句将所借书以表格形式显示出来。
<table border=1 width="90%" >
<% if NOT isempty(Request.Form("B1")) then
Do Until RSBooks.EOF%>
<TR >
<TD WIDTH=40% height="20"><% Response.Write RSBooks("Title") %></td></tr>
<% RSBooks.MoveNext
loop
end if
%>
</table>
循环将遍历Rsbooks记录集中的每个记录,直到该记录集结束:
该网站中的所有ASP页面都会在访问者访问之前对其进行登录检查。这样就可以避免访问者通过输入某个页面地址然后在没有登录的情况下直接进入该页面的情况发生。此外,每个管理页面都要确认访问者是管理员。
管理菜单页面
管理菜单页面有一个HTML表单,根据选择的按钮的不同,可以进行5种不同的操作:图书的归还、图书的编辑、图书的删除、图书的添加和类别的添加。不管选择了哪一个按钮,该表单都提交人其自身进行处理。