成员
指导老师:王艳
学员:李启航
王文卓
严东奕
- 系统分析
- 1项目背景
在当今社会,图书管理系统是一个广泛应用于图书馆、学校、企业和个人的软件系统,它的目的是为了有效地管理和组织图书资源,提高图书借阅和管理的效率。随着信息技术的发展,图书管理系统已经从最初的纸质记录过渡到了数字化管理,提供了更加便捷和高效的服务。随着数字化时代的到来,图书馆和其他图书管理机构需要适应新技术,将传统的纸质记录转换为电子数据,以便更好地管理和检索信息。现代用户期望能够随时随地访问图书资源,包括在线搜索、预订、借阅和归还图书,以及获取推荐和通知等服务。
1. 2需求分析
用户
1.个人信息管理:(账号,密码,联系方式)
查看和修改个人信息,如联系方式、密码等。
2.借阅历史查询(书名,借书日期)
查看自己的借阅历史和当前借阅状态。
3.图书检索与借阅:(书编号,书名,作者,借书日期,还书日期)
搜索图书并查看详细信息。
提交借阅请求,查看借阅状态和借阅期限。
4.预约与续借:(预约时间,续借还书时间)
对已借出的图书进行预约。
在线申请续借图书。
5.座位预约:(座位号,预约时间,预约时长,座位状态)
对空位进行预约
6 .失物招领信息查询:(物品概述,丢失日期,领取状态)
对丢失物品查询
管理员
1.系统管理:(账号,姓名,所在学院,所在系,专业,学号)
管理用户账户,包括创建新用户、修改权限、删除账户等。
设置和更新系统参数,如借阅期限、罚款标准等。
2.图书管理:(书编号,作者,类别,出版社,出版日期,在库数,价格,借阅状态)
添加新图书到数据库,包括录入图书信息和分配分类。
更新图书信息,如库存数量、状态变更等。
3.借阅管理:(账号,姓名,书编号,书名,借出日期,拖欠日期,罚款金额)
监控借阅活动,处理逾期图书和罚款。
查看和修改借阅记录,处理特殊情况下的借阅请求。
4.座位管理:(座位号,预约姓名,预约时长,座位状态)
查看和修改座位管理,对预约座位的状态修改
5.失物招领管理:(物品概述,丢失日期,领取状态,领取人姓名,学号)
添加丢失物品及信息和领取状态以及领取人信息
2 数据库的设计
2.1 概念结构设计
(一)实体之间的联系如下:
一个管理员可以整理多本图书信息,因此管理员和图书信息具有一对多的联系,用整理来表示管理员和图书信息的关系。
一个管理员可以对多种图书类型进行归类,因此管理员和图书类型具有一对多的联系,用归类来表示管理员和图书类型的关系。
一个管理员可以管理多个图书借阅信息,因此管理员和图书借阅信息具有一对多的联系,用管理来表示管理员和图书借阅信息的关系。
一个管理员可以管理多个图书归还信息,因此管理员和图书归还信息具有一对多的联系,用管理来表示管理员和图书归还信息的关系。
一个管理员可以管理多个读者信息,因此管理员和读者信息具有一对多的联系,用管理来表示管理员和读者信息的关系。
一本图书可由一个读者借阅,一个读者也可借阅多本图书,因此读者和图书借阅具有一对多的联系,用借阅来表示读者和图书借阅的关系。
一本图书可由一个读者归还,一个读者也可归还多本图书,因此读者和图书归还具有一对多的联系,用归还来表示读者和图书归还的关系。
一个座位可由一个读者预约使用,一个读者只能预约一个座位,因此读者和座位归还具有一对一的联系,用预约座位来表示读者和座位的关系。
一个管理员可以管理多个丢失物品信息,因此管理员和丢失物品信息具有一对多的联系,用管理来表示管理员和丢失物品信息的关系。
(二)E-R图设计如下:
2.2 逻辑结构设计
将E-R图转换为关系模型如下:
管理员(ID编号、管理员名称、管理员密码)
图书信息(图书编号、书名、作者、价格、出版社)
图书管理(图书编号、书名、数量、所在位置,ID编号)
图书借阅(读者账号、图书编号、读者姓名、借书时间、归还时间、是否归还)
图书归还(读者账号、图书编号、读者姓名、归还时间)
迟交罚款 (读者账号、图书编号、读者姓名、应归还时间,实际归还时间,罚金)
读者信息(账号,密码,姓名,电话,身份证号,性别)
座位管理(座位号,预约账号,预约时长,座位状态)
失物招领管理(物品编号,领取账号,物品概述,丢失日期,领取状态,领取时间)
对关系模型进行规范化,最终规范为第三范式。
2.3 物理结构设计
(1)manager(管理员信息表)
列名 | 数据类型 | 完整性约束 | 说明 |
MId | Char(10) | Primary key | ID编号 |
Name | Varchar(30) | Not null | 管理员名称 |
Password | Varchar(30) | Not null | 管理员密码 |
(2)bookinfo(图书信息表)
列名 | 数据类型 | 完整性约束 | 说明 |
Id | Char(10) | Foreign key | ID编号 |
Bookname | Varchar(60) | Not null | 书名 |
Author | Varchar(60) | Not null | 作者 |
BookId | Char(10) | Primary key | 图书编号 |
Publish | Varchar(30) | Not null | 出版社 |
MId | Char(10) | Foreign key | 管理员账号 |
(3)booktype(图书类型表)
列名 | 数据类型 | 完整性约束 | 说明 |
BookId | Char(10) | Primary key | 图书编号 |
Bookname | Varchar(60) | Not null | 书名 |
Quantity | Char(20) | Not null | 数量 |
Place | Varchar(20) | Not null | 所在书架 |
MId | Char(10) | Foreign key | 管理员账号 |
(4)bookborrow(图书借阅表)
列名 | 数据类型 | 完整性约束 | 说明 |
ReaderId | Char(10) | primary key | 读者编号 |
ReaderName | Varchar(10) | Not null | 读者姓名 |
BookId | Char(10) | foreign key | 图书编号 |
BorrowTime | Date | Not null | 借书时间 |
BackTime | Date | Not null | 归还时间 |
MId | Char(10) | Foreign key | 管理员账号 |
(5)bookback(图书归还表)
列名 | 数据类型 | 完整性约束 | 说明 |
ReaderId | Char(10) | Primary key | 读者编号 |
ReaderName | Varchar(10) | Not null | 读者姓名 |
BookId | Char(10) | Foreign key | 图书编号 |
BackTime | Date | Not null | 归还时间 |
IfBack | Varchar(10) | Not null | 是否归还 |
MId | Char(10) | Foreign key | 管理员账号 |
(6)readerinfo(读者信息表)
列名 | 数据类型 | 完整性约束 | 说明 |
ReaderId | Char(10) | Primary key | 读者账号 |
Password | Varchar(20) | Not null | 密码 |
ReaderName | Varchar(10) | Not null | 姓名 |
Sex | Varchar(10) | Not null | 性别 |
Identify | Char(18) | Not null | 证件号码 |
Tel | Varchar(20) | Not null | 电话 |
MId | Char(10) | Foreign key | 管理员账号 |
(7)lost(失物招领表)
列名 | 数据类型 | 完整性约束 | 说明 |
ItemId | Char(10) | Primary key | 物品编号 |
ReaderId | Char(10) | Primary key | 读者账号 |
ItemOverview | Varchar(20) | Not null | 物品概述 |
LostTime | Date | Not null | 丢失日期 |
ClaimStatus | Varchar(4) | Not null | 领取状态 |
MId | Char(10) | Foreign key | 管理员账号 |