Mysql图书借阅管理系统设计

2024-06-04 9590阅读

Mysql图书借阅管理系统设计 第1张

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

设计需求:设计并开发一个小型的图书借阅管理系统。图书借阅管理系统主要有三类用户,(1)系统管理员:实现对读者、图书以及图书管理员信息的增加、删除、查询、修改等。读者信息包括证件号、姓名、证件状态(有效和失效)、联系方式等。图书信息包括图书编号、图书名称、作者、出版社、价格等。工作人员信息包括工作证号、姓名、电话等。

(2)读者:可以实现借书、还书,查阅图书信息、查询借书信息等。

(3)工作人员:可以实现办理借书、还书,图书超期罚款等。

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

1.总体需求

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

1)系统管理员:

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

读者信息包括证件号、姓名、证件状态(有效和失效)、联系方式等。

图书信息包括图书编号、图书名称、作者、出版社、价格等。

工作人员信息包括工作证号、姓名、电话等。

(2)读者:

可以实现借书、还书,查阅图书信息、查询借书信息等。

(3)工作人员:

可以实现办理借书、还书,图书超期罚款等。

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

2.功能需求

1)系统管理员

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

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

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

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

(2)读者:

查询所有书籍信息

查询借书信息

提交借书申请

提交还书申请

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

(3)工作人员:

查询所有书籍信息

查询借书信息

处理借书申请

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

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

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

Mysql图书借阅管理系统设计 第2张

3数据流图

第0层数据流:

Mysql图书借阅管理系统设计 第3张

第1层数据流

Mysql图书借阅管理系统设计 第4张

第2层数据流

登录(以读者为例)

 

 Mysql图书借阅管理系统设计 第5张

借书

Mysql图书借阅管理系统设计 第6张

还书

Mysql图书借阅管理系统设计 第7张

处理借书申请

 

Mysql图书借阅管理系统设计 第8张

处理还书申请

Mysql图书借阅管理系统设计 第9张

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模型图

Mysql图书借阅管理系统设计 第10张

逻辑模型设计

 

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=’红楼梦’;

 

 


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]