Mysql图书借阅管理系统设计

avatar
作者
猴君
阅读量:1

69d0da74ea2f436c983e38c06d7c8b3d.png

说明:本文章的图书管理系统设计将演示mysql数据库设计的基本流程:总体需求,功能需求,数据流图,数据字典,概念模型设计,逻辑模型设计,创建数据库,创建数据库表,创建视图,功能相关sql语句。不涉及前端页面的编写,前后端交互等部分。

设计需求:设计并开发一个小型的图书借阅管理系统。图书借阅管理系统主要有三类用户,(1)系统管理员:实现对读者、图书以及图书管理员信息的增加、删除、查询、修改等。读者信息包括证件号、姓名、证件状态(有效和失效)、联系方式等。图书信息包括图书编号、图书名称、作者、出版社、价格等。工作人员信息包括工作证号、姓名、电话等。
(2)读者:可以实现借书、还书,查阅图书信息、查询借书信息等。
(3)工作人员:可以实现办理借书、还书,图书超期罚款等。
图书馆规定:每位读者可以借阅多本图书,一本图书可以被不同的读者借阅,每借出一本书都有借阅日期、应还日期,每本图书的借阅期限是一个月,超期一天罚款0.5元。

1.总体需求

图书管理系统主要满足三类用户需求:系统管理员、读者、工作人员

1)系统管理员:

实现对读者、图书以及图书管理员信息的增加、删除、查询、修改等。

读者信息包括证件号、姓名、证件状态(有效和失效)、联系方式等。
图书信息包括图书编号、图书名称、作者、出版社、价格等。

工作人员信息包括工作证号、姓名、电话等。
(2)读者:

可以实现借书、还书,查阅图书信息、查询借书信息等。
(3)工作人员:

可以实现办理借书、还书,图书超期罚款等。
图书馆规定:每位读者可以借阅多本图书,一本图书可以被不同的读者借阅,每借出一本书都有借阅日期、应还日期,每本图书的借阅期限是一个月,超期一天罚款0.5元

2.功能需求

1)系统管理员

查询图书,读者,工作人员,借书信息

新增图书,读者,工作人员,借书信息

修改图书,读者,工作人员,借书信息

删除图书,读者,工作人员,借书信息

(2)读者:

查询所有书籍信息

查询借书信息

提交借书申请

提交还书申请

对自己的读者信息进行查询,修改

(3)工作人员:

查询所有书籍信息

查询借书信息

处理借书申请

处理还书申请并决定是否罚款

对自己的工作人员信息进行查询,修改

图书借阅系统功能模块划分:

7625704f680e4939b97145d4891180b5.png

3数据流图

第0层数据流:

37fbcca350a0434796518dde5e174df2.png

第1层数据流

6a0933b288c14cf0b7a12450c19d1e87.png

第2层数据流

登录(以读者为例)

 

 9df68815dcab499883385631c1f9d669.png

借书

d358dca1b840415f9690738757ab40d7.png

还书

f25a85cf01514c1a8c64ee95d568e451.png

处理借书申请

 

9c07058fcce64864bdddcc1c3183030b.png

处理还书申请

e707e4dbbc894ae084e8c3f0eaee15a2.png

4.数据字典

1数据项

名称

说明

数据类型

字符个数

book_id

图书编号

  varchar

10

book_name

图书名称

varchar

10

author

作者

varchar

12

publish_name

出版社

varchar

12

price

价格

int

/

lend

剩余数量

int

/

worker_id

工作证号

varchar

8

worker_name

工作人员姓名

varchar

5

worker_phone

工作人员电话

varchar

11

worker_pwd

工作人员密码

varchar

11

reader_id

读者证号

varchar

8

reader_name

读者姓名

varchar

5

reader_phone

读者电话

varchar

11

reader_pwd

读者密码

varchar

11

reader_staitc

读者证状态

varchar

5

lend_date

借阅日期

date

YYYY-MM-DD

borrow_date

应还日期

date

YYYY-MM-DD

cost

罚款

float(5,2)

/

 

 

2数据结构

名称:图书表

说明:图书的详细信息

结构:

名称

说明

book_id

图书编号

book_name

图书名称

author

作者

publish_name

出版社

price

价格

lend

剩余数量

名称:借书表

说明:借书信息

结构:

名称

说明

reader_id

读者证号

book_name

图书名字

lend_date

借阅日期

borrow_date

应还日期

名称:工作人员表

说明:工作人员详细信息

结构:

名称

说明

worker_id

工作证号

worker_name

工作人员姓名

worker_phone

工作人员电话

worker_pwd

工作人员密码

名称:读者表

说明:读者详细信息

名称

说明

reader_id

读者证号

reader_name

读者姓名

reader_phone

读者电话

reader_pwd

读者密码

reader_staitc

读者证状态

名称:罚款表

说明:罚款信息

名称

说明

reader_id

读者证号

worker_id

工作证号

book_name

图书名字

cost

罚款

 

5.系统数据库结构设计

 

概念模型设计

实体:读者,工作人员,图书

读者属性:读者证号,读者姓名,读者电话,读者密码,读者证状态

工作人员属性:工作证号,工作人员姓名,工作人员电话,工作人员密码

图书属性:图书编号,图书名称,作者,出版社,价格,借阅状态

实体与实体之间的关系

一个读者可以借阅、归还多本书,每本书可以被多个读者借阅、归还

工作人员可以修改多本图书借阅状态,一本图书借阅状态只能由一个工作人员修改

工作人员可对多个读者进行罚款,一个读者可被多个工作人员罚款

E-R模型图

7f7c4d9720c349e5a61412512550f421.png

逻辑模型设计

 

Book(book_id, book_name,author,publish_name,price,lend);

Lend_book(reader_id, book_id, lend_date, borrow_date);

Worker(worker_id, worker_name, worker_phone, worker_pwd);

Reader(reader_id,reader_name,reader_phone,reader_pwd,reade;r_static);

Cost(reader_id,worker_id,book_name,cost);

数据库表结构设计

Book表

列名

数据类型

约束

说明

book_id

  varchar(10)

primary key

图书编号

book_name

varchar(10)

not null

图书名称

author

varchar(12)

not null

作者

publish_name

varchar(12)

not null

出版社

price

int

not null

价格

lend

int

not null

剩余数量

Lend_book表

列名

数据类型

约束

说明

reader_id

varchar(8)

foreign key

读者证号

book_name

varchar(10)

foreign key

图书名字

lend_date

date

not null

借阅日期

borrow_date

date

not null

应还日期

Worker表

列名

数据类型

约束

说明

worker_id

varchar(8)

primary key

工作证号

worker_name

varvhar(5)

not null

工作人员姓名

worker_phone

varchar(11)

not null

工作人员电话

worker_pwd

varchar(11)

not null

工作人员密码

Reader表

列名

数据类型

约束

说明

reader_id

varchar(8)

primary key

读者证号

reader _name

varvhar(5)

not null

读者姓名

reader _phone

varchar(11)

not null

读者电话

reader _pwd

varchar(11)

not null

读者密码

reader_staitc

varvhar(5)

not null

读者证状态

Cost表

列名

数据类型

约束

说明

reader_id

varchar(8)

foreign key

读者证号

worker_id

varchar(8)

foreign key

工作证号

book_name

  varchar(10)

foreign key

图书名字

cost

float(5,2)

not null

罚款

创建数据库

create database library;

创建数据库表

创建图书表

create table Book(  book_id  varchar(10)   primary key,  book_name  varchar(10)   not null,  author varchar(12)   not null,  publish_name varchar(12)   not null,  price int   not null ,  lend int   not null  );

创建借书表

create table Lend_book (  reader_id varchar(8),  book_name  varchar(10) ,  lend_date  date not null,  borrow_date  date not null,  foreign key (reader_id) references Reader(reader_id),  foreign key (book_name) references Reader(book_name)  );

创建工作人员表

create table Worker(  worker_id  varchar(8)   primary key,  worker_name  varchar(5)   not null,  worker_phone varchar(11)   not null,  worker_pwd  varchar(11)   not null,  );

创建读者表

create table Cost(  reader_id  varchar(8)   primary key,  reader _name  varchar(5)   not null,  reader _phone varchar(11)   not null,  reader _pwd  varchar(11)   not null,  reader_staitc  varchar(5)   not null  );

创建罚款表

create table Worker(  reader_id  varchar(8) ,  worker_id  varchar(8),  book_name varchar(10),  cost float(5,2) not null,  foreign key (reader_id) references Reader(reader_id),  foreign key (worker_id) references Worker(worker_id),  foreign key (book_name) references Worker(book_name)  );

创建索引

create unique index ibook on Book(book_id);  create cluster index ilend on Lend_book(reader_id);  create unique index iworker on Worker(worker_id);  create unique index ireader on Reader (reader_id);  create cluster index icost on Lend(reader_id);

创建视图

创建超过归还日期的图书视图

create view over as select * from Book where DATE_SUB(CURRENT_DATE(),INTERVAL 1 month) > borrow_date;

创建借阅证失效的读者视图

create view miss as select * from Reader where reader_staitc=’outdate’;

功能相关sql语句:

增加图书

insert into Book values(‘001’,’红楼梦’,’曹雪芹’,’东方出版社’,55,20);

修改图书

update Book set lend=19 where book_id=’001’;

查询图书

select * from Book;

删除图书

delete from Book where book_id=’001’;

增加工作人员

insert into Worker values(‘202301’,’老王’,’666666’,’123456’);

修改工作人员

update Worker set pwd=’123’ where worker_id=’202301’;

查询工作人员

select * from Worker where worker_id=’202301’;

删除工作人员

delete from Worker where worker_id =’202301’;

增加读者

insert into Reader values(‘00001’,’小明’,’888888,’123456’);

修改读者

update Reader set pwd=’123’ where reader_id=’ 00001’;

查询读者

select * from Reader where reader_id=’ 00001’;

删除读者

delete from Reader where reader_id=’ 00001’;

增加借书信息

insert into Lend_book values(‘00001’,’红楼梦’,’2023-11-11’,’2023-12-11’);

修改借书信息

update Lend_book set borrow_date=’2024-1-1’ where reader_id=’ 00001’ and book_name=’红楼梦’;

查询借书信息

select * from Lend_book where book_name=’红楼梦’;

删除借书信息

delete from Lend_book where reader_id=’ 00001’ and book_name=’红楼梦’;

增加罚款

insert into Cost values(‘00001’,’202301’,’红楼梦’,18.5);

修改罚款

update Cost set cost=19.5  where reader_id=’ 00001’ and book_name=’红楼梦’ ;

查询罚款

select * from Cost where reader_id=’ 00001’;

删除罚款

delete from Cost where reader_id=’ 00001’ and book_name=’红楼梦’;

 

 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!