二、功能设计
2.1 数据库设计
2.1.1 需求分析
(1)系统任务
我们所要做的是一个高校图书馆藏书借阅系统,用于读者对图书的检索、浏览、借阅。因此,需要的功能包括对图书的检索查询、借阅、预约、续借、安全性保障。
而在拓展功能板块,我们的考虑为以图书为中心建立起图书与图书之间的关系,图书与人之间的关系,以图书为中心的推荐系统强调的是如何建立起有效的链接关系。
(2)有需求的用户组成
对此系统有需求的用户是有浏览、借阅图书需求的读者——由教师、学生、普通游客组成。其中,教师、学生是有借阅/预约图书资格的用户,而且借阅权限有所不同;普通游客是那些非本校的、可以浏览、检索此系统所藏图书而没有借阅和预约资格的用户。
(3)用户的信息要求
教师与学生使用此系统主要用于检索、浏览、借阅图书,包括查询书目信息,借书、还书,预约与续借。教师与学生为获得借阅资格,需要在此系统上进行用户注册并登陆,然后通过检索,并根据每本书的书目信息——其ISBN、标题、摘要、封面图、出版者、出版年份、中图法的图书分类号、价格来确定所借阅的图书。
教师与学生还有对自身用户状态的信息需求,包括借阅记录、预约记录、信用值、是否被罚款等。
同时,还有对所需图书的借阅状态的信息需求,比如只有知道此书是否已被他人预约而确定能否续借等。额外的需求还有图书推荐等。
普通游客不需要进行用户注册和登陆,只是浏览,其需求包括了解此系统内所含图书的大体信息,比如标题、封面图、摘要等从而了解馆藏的大致情况。
(4)系统边界
对此系统的人工操作包括供图书馆管理员操作的图书的录入,新用户的等级,图书的修改,用户的修改等,而数据库管理员拥有上述的所有权限,并且能够定义用户的权限等。总体而言,DBA拥有对于系统的全部掌握。
2.1.2 概念结构设计
首先分析数据库描述的主要对象中有哪些实体,最主要的便是书和用户,此外还有拥有最高操作权限的数据库管理员。
书和用户存在着:借阅、(反复)预约关系
借阅会有如下情形:按时归还与逾期还书、丢失、续借
预约则有如下要求:
仅能在到期时间前5天进行续借
如果此书已被人预约,则不可续借
多人续借同一本书则按照预约时间进行排队
特别注意的地方:
作者和译者本是书的两个属性,但是现实中存在一本书存在多个作者和译者的情形,所以需要单独为作者和译者建立一个表(由于作者和译者没有属性上的差别,且同一个人既可能是作者有可能是另外书籍的译者),另外建立书-作者表和书-译者表
图书有ISBN号作为同一版本同一书籍的唯一标识码,但是图书管中存在同一本书的多个复本,由此建立书目表和复本表。书目表记录同一书籍的书目信息,复本表记录各个复本的流通情况
用户分为三类:学生读者、教师读者、图书馆管理员。其中学生读者和教师读者的借阅权限有所不同;图书馆管理员可以修改学生和教师的权限,修改书目信息,但不能修改自己的权限;数据库管理员可以修改三类用户的权限和数据库的其它信息
完整的源码和详细的文档,上传到了 WRITE-BUG技术共享平台 上,需要的请自取: