成员
指导老师:王艳
学员:李启航
王文卓
严东奕
一 系统分析
1.1 项目背景
在当今社会,图书管理系统是一个广泛应用于图书馆、学校、企业和个人的软件系统,它的目的是为了有效地管理和组织图书资源,提高图书借阅和管理的效率。随着信息技术的发展,图书管理系统已经从最初的纸质记录过渡到了数字化管理,提供了更加便捷和高效的服务。随着数字化时代的到来,图书馆和其他图书管理机构需要适应新技术,将传统的纸质记录转换为电子数据,以便更好地管理和检索信息。现代用户期望能够随时随地访问图书资源,包括在线搜索、预订、借阅和归还图书,以及获取推荐和通知等服务。
1.2 需求分析
对于用户,有自己的登录账号,用户可以查询图书信息,可以对图书进行借阅和归还,用户可以查询空余座位并预约时长,用户可以查询丢失物品信息,用户可以查询自己的借阅历史。
对于管理员,首先管理员有自己的登陆账号,它可以对用户的账号进行管理,它可以对用户的借阅进行管理,它可以对用户的归还进行管理,它可以对用户迟交归还的罚款进行管理。
二 数据库的设计
2.1 概念结构设计
(一)实体之间的联系如下:
一本图书可由多个读者借阅,一个读者也可借阅多本图书,因此读者和图书借阅具有多对多的联系,用借阅来表示读者和图书借阅的关系。
一本图书可由多个读者归还,一个读者也可归还多本图书,因此读者和图书归还具有多对多的联系,用归还来表示读者和图书归还的关系。
管理员可以整理多个图书,因此管理员和图书是一对多的联系,用管理表示图书和管理员图书管理的关系。
管理员可以管理多个用户的借阅,因此管理员和用户的借阅是一对多的联系,用借阅记录管理表示读者和管理员图书借阅管理的关系。
管理员可以管理多个用户的归还,因此管理员和用户归还是一对多的联系,用归还记录管理表示读者和管理员图书归还管理的关系。
管理员可以管理多个用户的丢失物品领取管理,因此管理员和用户的丢失物品管理是一对多的联系,用丢失物品领取管理表示读者和管理员丢失物品领取管理的关系。
管理员可以管理多个用户的账号,因此管理员和用户是一对多的联系,用账号管理表示读者和管理员账号管理的关系。
管理员可以管理多个用户的图书迟交罚款,因此管理员和图书迟交罚款是一对多的关系,读者只能查询自己的图书罚款,所以读者与图书罚款是一对一的关系
一个读者只能预约一个座位,因此读者和座位是一对一的关系,管理员可查询座位预约情况,属于一对多的关系
e-r图:
局部e-r图
整体e-r图:
2.2 逻辑结构设计
将E-R图转换为关系模型如下:
管理员(ID编号、管理员名称、管理员密码)
用户(ID编号、名称、密码、身份证号、性别、电话、余额)
图书信息(图书编号、书名、作者、价格、数量、位置、出版社)
图书借阅(用户编号、图书编号、读者姓名、借书时间、归还时间)
图书归还(用户编号、图书编号、读者姓名、归还时间)
迟交罚款 (用户编号、图书编号、读者姓名、应归还时间,实际归还时间,罚金)
座位管理(座位号,预约ID,座位位置,预约时长,座位状态)
失物招领管理(物品编号,用户编号,用户名称,物品概述,丢失日期,领取日期)
优化关系模型
管理员(ID编号、管理员名称、管理员密码)
用户(ID编号、名称、密码、身份证号、性别、电话、余额)
图书信息(图书编号、书名、作者、价格、数量、位置)
图书借阅(用户编号、图书编号、借书时间、归还时间、是否归还)
图书归还(用户编号、图书编号、归还时间)
迟交罚款 (用户编号、图书编号、应归还时间,实际归还时间,罚金)
座位预约(座位号,用户编号,座位位置,预约时长,座位状态)
失物招领管理(管理编号,用户编号,物品编号,物品概述,丢失日期,领取日期)
2.3 物理结构设计
manager(管理员信息表)
列名 | 数据类型 | 完整性约束 | 说明 |
MId | Char(8) | Primary key | 管理员编号 |
Name | Varchar(8) | Not null | 管理员名称 |
Password | Varchar(15) | Not null | 管理员密码 |
reader(用户信息表)
列名 | 数据类型 | 完整性约束 | 说明 |
ReaderId | Char(8) | Primary key | 用户编号 |
Password | Varchar(15) | Not null | 密码 |
ReaderName | Varchar(8) | Not null | 姓名 |
Sex | Char(2) | Not null | 性别 |
Identify | Char(18) | Not null | 证件号码 |
Tel | Char(20) | Not null | 电话 |
Balance | Int | Not null | 余额 |
book(图书信息表)
列名 | 数据类型 | 完整性约束 | 说明 |
BookId | Char(8) | Primary key | 图书编号 |
Bookname | Varchar(30) | Not null | 书名 |
Author | Varchar(30) | Not null | 作者 |
Publish | Varchar(30) | Not null | 出版社 |
Number | Int | Not null | 图书数量 |
Price | Int | Not null | 价格 |
BookPlace | Char(10) | Not null | 图书位置 |
(座位预约表)
列名 | 数据类型 | 完整性约束 | 说明 |
SeatId | Char(5) | Primary key | 座位号 |
ReaderId | Char(8) | Foreign key | 用户编号 |
SeatPlace | Char(18) | Not null | 座位位置 |
ReservationTime | Time | 预约时间 | |
预约状态 | char(4) | 预约状态 |
borrow(图书借阅记录信息表)
列名 | 数据类型 | 完整性约束 | 说明 |
ReaderId | Char(8) | Foreign key | 用户编号 |
BookId | Char(8) | Foreign key | 图书编号 |
BorrowTime | Date | Not null | 借书时间 |
BackTime | Date | Not null | 应归还时间 |
IfBack | Char(2) | Not null | 是否归还 |
Primary key(ReaderId,BookId)
return(图书归还记录信息表)
列名 | 数据类型 | 完整性约束 | 说明 |
ReaderId | Char(8) | Foreign key | 用户编号 |
BookId | Char(8) | Foreign key | 图书编号 |
BackTime | Date | Not null | 归还时间 |
Primary key(ReaderId,BookId)
returnfine(图书归还迟交罚款)
列名 | 数据类型 | 完整性约束 | 说明 |
ReaderId | Char(8) | Foreign key | 用户编号 |
BookId | Char(8) | Foreign key | 图书编号 |
BackTime1 | Date | Not null | 应归还时间 |
BackTime2 | Date | Not null | 实际归还时间 |
Fine | Int | Not null | 罚金 |
Primary key(ReaderId,BookId)
lostmanagement(失物招领管理表)
列名 | 数据类型 | 完整性约束 | 说明 |
ItemId | Char(10) | Not Null | 物品编号 |
ReaderId | Char(8) | Foreign key | 用户编号 |
GetDate | Date | Not null | 领取日期 |
ItemOverview | Char(10) | Not Null | 物品概述 |
LostTime | Date | Not Null | 丢失日期 |
Primary key(ReaderId,ItemId)