Access数据库应用实例一一图书借阅管理系统
一、数据库分析与设计
1.数据库数据结构分析
通过对图书借阅管理的内容和数据分析,创建该管理系统数据库,名为“图书借阅管理系统. mdb”, 主要包含的数据表有“会员表”、“会员级别表”、“图书表”、“图书类别表”、“图书借阅表”共 五个表。这五个表之间存在着一定的关联关系,各表间的关系如图2所示:
图2系统中各表间关系图
2.数据库逻辑结构设计
“图书借阅管理系统”的各个数据库表结构设计如表1〜表5所示:
表1 ”会员表”表结构
字段名 | 数据类型 | 字段大小 | 格式 | 主键 | 必填字段 |
会员证编号 | 文本 | 12 | 是 | 是 | |
会员级别 | 文本 | 8 | 是 | ||
会员姓名 | 文本 | 8 | 是 | ||
会员性别 | 文本 | 2 | 是 | ||
身份证号 | 文本 | 18 | 是 | ||
单位名称 | 文本 | 50 | 否 | ||
单位地址 | 文本 | 50 | 否 | ||
文本 | 15 | 否 | |||
办证日期 | 日期/时间 | 短日期 | 是 | ||
有效日期 | 日期/时间 | 短日期 | 否 | ||
照片 | OLE对象 | 否 | |||
备注 | 备注 | 否 | |||
表2 ”会员级别表”表结构
字段名 | 数据类型 | 字段大小 | 格式 | 主键 | 必填字段 |
会员级别 | 文本 | 8 | 是 | 是 | |
限借册数 | 数字 | 整型 | 是 | ||
表3 “图书表”表结构
字段名 | 数据类型 | 字段大小 | 格式 | 主键 | 必填字段 |
图书编号 | 文本 | 7 | 是 | 是 | |
图书分类号 | 文本 | 30 | 是 | ||
图书类别 | 文本 | 30 | 是 | ||
书名 | 文本 | 50 | 是 | ||
作者 | 文本 | 50 | 是 | ||
出版社 | 文本 | 30 | 是 | ||
出版日期 | 日期/时间 | 短日期 | 是 | ||
价格 | 数字 | 双精度型 | 货币 | 是 | |
存放位置 | 文本 | 50 | 是 | ||
入库时间 | 日期/时间 | 短日期 | 是 | ||
库存总数 | 数字 | 整型 | 是 | ||
在库数量 | 数字 | 整型 | 是 | ||
借出数量 | 数字 | 整型 | 是 | ||
新书入库 | 数字 | 整型 | 否 | ||
旧书出库 | 数字 | 整型 | 否 | ||
借出次数 | 数字 | 整型 | 是 | ||
备注 | 备注 | 否 | |||
表access数据库生成网页版4 ”图书类别表”表结构
字段名 | 数据类型 | 字段大小 | 格式 | 主键 | 必填字段 |
图书类别 | 文本 | 30 | 是 | 是 | |
限借天数 | 数字 | 整型 | 是 | ||
超期/天 | 数字 | 双精度型 | 货币 | 是 | |
表5 ”图书借阅表”表结构
字段名 | 数据类型 | 字段大小 | 格式 | 主键 | 必填字段 | 默认值 |
借阅编号 | 自动编号 | 长整型 | 是 | |||
图书编号 | 文本 | 7 | 是 | |||
会员证编号 | 文本 | 12 | 是 | |||
借阅日期 | 日期/时间 | 短日期 | 是 | |||
还书日期 | 日期/时间 | 短日期 | 否 | |||
已缴 | 文本 | 2 | 是 | “否” | ||
备注 | 备注 | 否 | ||||
:、查询的设计与实现
在本图书借阅管理系统中,要用到大量的查询功能。Access 2003提供了 5种查询:选择查询、参数 查询、交叉表查询、操作查询和SOL查询。
其中操作查询又包括生成表查询、更新查询、追加查询和删除查询4种查询。
(1)生成表查询•':这种查询可以根据一个或多个表中的全部或部分数据新建表。生成表查
询有助于创建表以导出到其他Microsoft Access数据库或包含所有旧记录的历史表。
(2)更新查询:,:这种查询可以对一个或多个表中的一个或一组记录作全局更改。使用更新
查询可以更改已有表中的数据。
(3)追加查询,追加查询将一个或多个表中的一组记录添加到一个或多个表的末尾。
(4)删除查询;:这种查询可以从一个或多个表中删除一组记录。(使用删除查询,通常会删
除整个记录,而不只是记录中的部分字段。)
该图书借阅管理系统中主要用到了选择查询、操作查询的更新查询和追加查询,下边我们以实例主 要说明一下这几种查询在本系统中的实现方法与过程。
1.选择查询的设计与实现
分析:在实际图书馆图书借阅过程中,会员(借阅者)或者图书馆管理员经常需要对图书借阅情况进行 查询,比如查看某本书是否已归还、某人是否未按期归还图书、某本书是否已到归还期或是某本书是否 忘记归还了等等。为了解决上述这些问题,我们就需要设置一些相应的查询(一般都是以“选择查询” 为居多)。这些查询能有效地帮我们解决这些问题。
步骤:(以“图书借阅超期查询”为例)
第一步:选择“在设计视图中创建查询”。(见图11)
图11
第二步:分别添加“会员表”、“图书表”、“图书借阅表”和“图书类别表”。(见图12)
见图12
第三步:选择“图书表”中的“图书编号”、“书名”、“作者”、“图书类别”;“会员表”中的“会 员证编号”、“会员姓名”、“会员级别”;“图书借阅表”中的“借阅日期”、“还书日期” 字段,然后再设立2个新字段一一“超期天数”和“应还日期”。这两个新字段是原表中没有 的,它们是以原表的部分字段为数据基础,通过数学表达式计算得出的新数据所组成的。(表 达式的写入可以通过单击工具栏上的“生成器”按钮髓,打开“表达式生成器”对话框来完成 ——如图13)最后在“还书日期”字段的“条件”约束栏中写入约束条件“IS NULL”并在 “超期天数”□字段的“条件”约束栏中写入约束条件" >0”(此处正值为有效值,负值是无 效值,因为负值说明还未超期,在该查询中无实用意义,故舍去)。(见图14)
下边给出这两个新字段的数学表达式:(1)超期天数:Date ()-[借阅日期]-[限借天数];(2) 应还日期:[借阅日期]+[限借天数]。
图13
图14
第四步:保存查询。(见图15)
图15
第五步:运行该查询。(见图16)
图16
其他选择查询的设计可参照“图书借阅超期查询”的设计来进行,如“借阅历史记录查询”、“今 日借出查询”、“今日到期查询”、“今日还书查询”、“今日入库查询”、“借书查询”、“还书查 询”、“续借查询”、“查询”等。下边给出上述这几个选择查询的主要设计视图供大家参考:
⑴.“借阅历史记录查询”主设计视图:(见图17)
图17
⑵.“今日借出查询”主设计视图:字段“借阅日期”须以“Date ()”(当前日期)作为约束条件。 (见图18)
图18
⑶.“今日到期查询”主设计视图:须通过“表达式生成器”建立新字段“应还日期”且以“ Date ()”为约束条件,表达式为:应还日期:[借阅日期]+[限借天数]。(见图19)
图19
⑷.“今日还书查询”主设计视图:字段“还书日期”须以“Date ()”作为约束条件。(见图20)
图20
⑸.“今日入库查询”主设计视图:字段“入库时间”须以“Date ()”作为约束条件。(见图21)
图21
⑹.“借书查询”主设计视图:由于“借书查询”、“还书查询”、“续借查询”、“查询” 这4个选择查询是专门为“借书窗体”、“还书窗体”、“续借窗体”、“窗体”的功能实现而量 身打造的专用查询,故其设计上有别与上述几个一般选择查询。区别主要体现在在这些查询中要设计与 相应窗体中控件的功能链接,如大家现在在图22—— “借书查询1”和图23—— “借书查询2
”(此处 将借书查询分为1和2两部分也是应借书窗体的功能要求而针对设计的)中看到的“图书编号”字段和 “会员证编号”字段中的条件约束即为功能链接的一部分。例如“借书查询1”中的“图书编号”字段 的条件”[Forms]![借书窗体]![Text13]”意为与“借书窗体”中的文本框“ Text13”相链接,该条件其实 起到了一个“指针”的作用(后边几个查询中的相似条件约束的功能与此相同,不再多作解释)。“借
书查询1”中的字段“在库数量”的约束条件为“>0”,表示某本书只有在有库存的情况下才允许借出。 (见图22〜图23)
图22
图23
⑺.“还书查询”主设计视图:“还书日期”字段的约束条件要设置为“ Is Null”,表示未还的书 才会被列出。(见图24)
图24
⑻.“续借查询”主设计视图:(见图25)
图25
⑼・“查询”主设计视图:须设立2个新字段一一“超期天数”和“数额”且“超期天数” 字段的约束条件为“>0”,另外“缴纳”字段的约束条件为“否”,表示已欠费且未缴纳过的 会员才会被列出,未欠费或已缴纳过的会员不会再被列出。下边给出这两个新字段的数学表达式:(1) 超期天数:[还书日期]-[借阅日期]-[限借天数];(2)数额:([还书日期]-[借阅日期]-[限借天数])*[超期 /天]。(见图26)
图26
2.操作查询的设计与实现
分析:在“图书借阅管理系统”中,图书的借阅功能是该系统的核心功能,如何实现该功能便是设计该 系统的核心问题。我们知道,图书在借出、归还、续借等过程发生后,数据表中的数据就应发生相应的 改变(即更新),那么在系统中如何实现数据的自动更新或添加呢?答案是利用“操作查询”。
步骤:(以“借书更新”和“借书追加”为例)
第一步:在设计视图中创建查询,并添加“会员表”、“图书表”和“图书借阅表”。
第二步:将“图书表”中的“图书编号”、“借出次数”、“借出数量”、“在库数量”字段;“会员 表”中的“会员证编号”字段;“图书借阅表”中的“还书日期”字段添加进来。并将查询类 型设置为“更新查询”(设置方法:在选中查询窗口的情况下在“查询设计菜单栏”中单击“查 询类型”叵旧进行更改,或者在查询窗口中的表添加栏中的空白处单击鼠标右键,在弹出的菜 单中选择查询类型)。(见图27〜图28)
图27
图28
第三步:对各个字段的更新条件进行设置。(如图29)
图中“借出次数”、“借出数量”、“在库数量”三个字段的“更新到” 一栏中的条件表示当 借书操作使得某本图书被借出时,相应数据表中的原数据应该根据这一条件更新为新数据。约 束条件“<[图书表]![库存总数]”表示若借出数量大于等于库存总数则数据无法更新,因为图书 已无库存,无法借出;约束条件" >0”表示只有当该书有库存的情况下才能借出;而字段“
图 书编号”和“会员证编号”的约束条件” [Forms]![借书窗体]![Text13]”和“[Forms]![借书窗 体]![Text14]”与前边在选择查询中提到的条件一样,是查询与相应窗体中控件的功能链接条件。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论