MySQL 图书管理系统

这篇具有很好参考价值的文章主要介绍了MySQL 图书管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.需求分析

1.1项目需求分析简介

1.1.1信息需求分析

(1) 图书信息:包括书籍编号,书籍名称,出版社,作者,库存量,出版日期,价格,库存,剩余量,类别等;

(2) 借阅证信息:包括借阅证编号,办证日期,可借数量等;

(3) 读者信息:读者编号,读者姓名,读者性别,读者电话

(4) 图书借还信息:包括图书编号,借阅证编号,读者编号,借阅日期,借阅数量,归还日期,归还数量,超期天数,罚款金额等;

1.1.2功能需求

学校图书借阅系统主要由:图书信息管理,读者信息管理,借阅证信息管理,借还信息管理,规则信息等模块组成。进入改系统后,用户可以对系统中的信息进行添加、修改、删除、查询等操作,包括以下功能:

(1) 图书信息管理模块:对图书信息进行增、删、改、查等操作;

(2) 读者信息管理模块:对读者信息进行增、删、改、查等操作;

(3) 借阅证信息管理模块:增加办卡,注销借阅卡等操作;

(4) 借还信息管理模块:进行借书、续借、还书等操作,查找出逾期的人及其逾期的天数;

(5) 操作记录管理模块:对读者的借,还,续借进行实时记录,便于管理员查找出指定读者的所有借阅记录。

(6) 规则信息管理模块:记录借书逾期的人及其逾期的天数,罚款。

1.2数据字典

1.2.1数据结构

1.数据结构:图书

含义说明:是学校图书借阅管理系统的主要数据结构,定义了图书的信息

组成:图书编号,书名,作者,出版日期,出版社,库存,剩余量,类别;

2.数据结构:读者

含义说明:是学校图书借阅管理系统的主要数据结构,定义了借阅者的基本信息

组成:读者编号,姓名,性别,电话号码;

3.数据结构:借阅证

含义说明:是学校图书借阅管理系统的主要数据结构,定义了借阅证的信息

组成:借阅证号,办证日期,可借数量;

4.数据结构:借,还,续借

含义说明:是学校图书借阅管理系统的主要数据结构,定义了图书借还的详细情况

组成:图书编号,借阅证编号,读者编号,借还日期,借还数量,是否续借

5.数据结构:规则

含义说明:是学校图书借阅管理系统的主要数据结构,定义了规则的详细情况

组成:读者编号,图书编号,借阅证编号,超期天数,超期本书,超期处罚

1.3系统分析

1.3.1功能模块简介

mysql图书管理系统,数据库,数据仓库

1.3.2功能需求描述

  1. 借阅功能:

图书出借时考虑三个问题:

读者是否因为超期、罚款等情况被关闭了借阅权限;

读者是否已经借满其限额。

该书是否不在库中;

如果不存在以上情况,则可以出借。

  1. 预约功能:

读者想借的书如果不在库中(已经被出借),读者可以预约该图书,当该图书被归还时系统给读者发送邮件,提醒他来借阅,此时其他读者也可以借阅该书。

  1. 续借功能:

读者还书的时候可以续借该图书,续借的过程包括先执行还书操作,再执行借阅操作。

  1. 发送催还邮件:

管理员可以发送邮件提醒读者到期还书。

  1. 读者管理功能:

对读者信息进行查看、添加、修改、删除。将读者分为不同类别,赋以不同权限。

  1. 系统管理功能:

对管理员的登录账号、密码进行添加、修改、删除。

  1. 借阅规则管理功能:

对图书借阅规则进行查看、添加、修改、删除。

  1. 概念结构设计

2.画E-R图

(1)图书实体E-R图

 

mysql图书管理系统,数据库,数据仓库

(2)图书类别实体E-R图

mysql图书管理系统,数据库,数据仓库

 

(3)借阅证实体E-R图

mysql图书管理系统,数据库,数据仓库

(4)读者实体E-R图

mysql图书管理系统,数据库,数据仓库

(5)规则实体E-R图

mysql图书管理系统,数据库,数据仓库

(6)记录实体E-R图

mysql图书管理系统,数据库,数据仓库

(7)学校图书借阅管理系统E-R图

mysql图书管理系统,数据库,数据仓库

 3.逻辑结构设计

学校图书管理系统关系模型

通过E-R图转换得到关系模型如下:

图书(书籍编号,书籍名称,作者,出版日期,出版社,价格,储存量,剩余量)

图书类别(类别编号,类别名称)

借阅证(借阅证号,办证日期,读者编号,说明,可借数量)

读者(读者编号,读者姓名,读者性别,读者电话,借阅证号)

借还(借读证编号,读者编号,书籍编号,借书日期,还书日期,是否续借,借书数量,还书数量,说明)

规则(读者编号,读者姓名,借阅证号,超期天数,本书,超期罚款)

记录表(序号,读者编号,记录时间,说明)

4.物理结构设计

图书表

mysql图书管理系统,数据库,数据仓库

书籍类别表

mysql图书管理系统,数据库,数据仓库

借阅证表

mysql图书管理系统,数据库,数据仓库

读者表

mysql图书管理系统,数据库,数据仓库

借还表

mysql图书管理系统,数据库,数据仓库

规则表

mysql图书管理系统,数据库,数据仓库

记录表

mysql图书管理系统,数据库,数据仓库

  5.数据库实施

  创建数据库:

CREATE database tushuguanli;

创建图书表:

use tushuguanli;

CREATE TABLE book (

book_id INT(10) NOT NULL,

book_name VARCHAR(30) NOT NULL,

author VARCHAR(30) NOT NULL,

pubdate DATE NOT NULL ,

publish VARCHAR(50) NOT NULL ,

Price INT(20) NOT NULL,

inventory INT(100) NOT NULL ,

residue INT(100) NOT NULL ,

typeid VARCHAR(20) NOT NULL ,

PRIMARY KEY (book_id),

KEY bo1 (typeid),

CONSTRAINT book_ibfk_1 FOREIGN KEY (typeid) REFERENCES book_type (typeid)

)

创建图书类别表:

CREATE TABLE book_type (

typeid VARCHAR(5) NOT NULL,

typename VARCHAR(100) DEFAULT NULL,

PRIMARY KEY (typeid)

)

创建借阅证表:

CREATE TABLE js_card (

js_id CHAR(5) NOT NULL,

period DATE DEFAULT NULL,

read_id VARCHAR(10) DEFAULT NULL,

state VARCHAR(50) DEFAULT NULL,

kj_number INT(4) DEFAULT NULL,

kejie VARCHAR(10) DEFAULT NULL,

PRIMARY KEY (js_id),

KEY read_id (read_id),

CONSTRAINT js_card_ibfk_1 FOREIGN KEY (read_id) REFERENCES reader (read_id)

)

创建读者表:

CREATE TABLE reader (

read_id VARCHAR(10) NOT NULL,

read_name VARCHAR(20) NOT NULL,

read_sex CHAR(2) NOT NULL,

read_tel INT(20) NOT NULL,

js_id CHAR(5) NOT NULL,

PRIMARY KEY (read_id),

KEY js_id (js_id),

CONSTRAINT reader_ibfk_1 FOREIGN KEY (js_id) REFERENCES js_card (js_id)

)

创建借还表:

CREATE TABLE borrow_back (

js_id VARCHAR(10) DEFAULT NULL,

read_id VARCHAR(10) DEFAULT NULL,

book_id INT(10) DEFAULT NULL,

borrowdate DATE DEFAULT NULL,

due DATE DEFAULT NULL,

shf_xvjie TINYINT(4) DEFAULT NULL,

js_count INT(100) DEFAULT NULL,

hs_count INT(100) DEFAULT NULL,

text_jh VARCHAR(100) DEFAULT NULL,

KEY bb1 (js_id),

KEY bb2 (read_id),

KEY bb3 (book_id),

CONSTRAINT bb1 FOREIGN KEY (js_id) REFERENCES js_card (js_id),

CONSTRAINT bb2 FOREIGN KEY (read_id) REFERENCES reader (read_id),

CONSTRAINT bb3 FOREIGN KEY (book_id) REFERENCES book (book_id)

)

创建规则表:

CREATE TABLE sf_rule (

read_id varchar(10) DEFAULT NULL,

book_id int(10) DEFAULT NULL,

js_id varchar(10) DEFAULT NULL,

days int(30) DEFAULT NULL,

num int(100) DEFAULT NULL,

mony varchar(100) DEFAULT NULL,

KEY js_id (js_id),

KEY read_id (read_id),

KEY book_id (book_id),

CONSTRAINT sf_rule_ibfk_3 FOREIGN KEY (js_id) REFERENCES js_card (js_id),

CONSTRAINT sf_rule_ibfk_1 FOREIGN KEY (read_id) REFERENCES reader (read_id),

CONSTRAINT sf_rule_ibfk_2 FOREIGN KEY (book_id) REFERENCES book (book_id)

)

创建操作记录表:

CREATE TABLE record (

jishu int(100) NOT NULL AUTO_INCREMENT,

read_id varchar(10) NOT NULL,

time datetime DEFAULT NULL,

text varchar(200) DEFAULT NULL,

PRIMARY KEY (jishu)

)

增加数据

INSERT into js_card VALUES('003','2021-03-29','rw3','最多借五本','5','');

mysql图书管理系统,数据库,数据仓库

删除数据

delete from record where read_id='rw1';

mysql图书管理系统,数据库,数据仓库

修改数据

UPDATE js_card SET state='不得超期10天' WHERE js_id='001';

mysql图书管理系统,数据库,数据仓库

查询数据

SELECT * from book_type;

mysql图书管理系统,数据库,数据仓库

存储过程

create procedure proc_borrow_book(IN a char(4),IN b int, IN m int,OUT state varchar(20))

begin

    declare read_count int default 0;

    declare book_count int default 0;

    declare stock int default 0;

    select count(read_id) INTO read_count from reader where read_id=a;

    if read_count>0 then

        select count(book_id) INTO book_count from book where book_id=b;

        if book_count >0 then

              select inventory INTO stock from book where book_id=b;

              if stock >= m then

                  set state='借书成功';

              else

                  set state='库存不足';

              end if;             

        else

              set state = '图书不存在';

        end if;

    else

        set state = '非学校人员';

    end if;

    end;

mysql图书管理系统,数据库,数据仓库

触发器

创建触发器实现借阅图书时,自动更新图书剩余量

CREATE TRIGGER jie_1

AFTER INSERT

ON borrow_back

FOR EACH ROW

UPDATE book SET residue=residue-NEW .js_count WHERE book_id=NEW .book_id ;

 创建触发器实现借阅图书时,自动更新借阅证的可借量

CREATE TRIGGER jie_2

BEFORE INSERT

ON borrow_back

FOR EACH ROW

UPDATE js_card SET kj_number=kj_number-NEW .js_count WHERE js_id=NEW .js_id;

创建触发器实现还书图书时,自动更新图书的剩余量

DELIMITER @@

CREATE TRIGGER huan_1

BEFORE UPDATE

ON borrow_back

FOR EACH ROW

BEGIN

IF OLD .due IS NULL AND NEW .due IS NOT NULL

THEN

UPDATE book SET residue=residue+NEW .hs_count WHERE book_id=NEW .book_id;

END IF;

END @@

  6.总结

这个图书馆系统我写了好长时间,而且也改了很多次,因为写的不是这不完整就是那不完整,总会有一些问题,第一次写的时候,一次就只能增加一条信息,第二次写的时候又出现了错误,增加信息是无限循环,总之,出现了很多错误,来来回回改了无数次,我学到很多知识,也学会如何去写一个完整的系统,写系统时应该注意什么。

我们写这个图书管理系统,就是一个很大的挑战我们都要去勇敢的迎接挑战,写代码过程中,我们也会遇到很多问题,我们应该去慢慢解决,不是后退,因为只有我们练得多了,解决的问题多了,才会有掌握写代码的技巧。我们也要相信自己,对自己有自信,还应该多花时间去学好我们的专业课。文章来源地址https://www.toymoban.com/news/detail-756392.html

到了这里,关于MySQL 图书管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库:数据库管理系统与安装MySQL数据库

    目录 一、理论 1.数据库管理系统 2.关系型数据库 3.数据库 4.MySQL数据库 5.MySQL部署 二、实验 1.yum安装MySQL 2.编译安装MySQL 3.配置MySQL数据库的Tab补全  三、问题 1.数据库登录报错 2.数据库密码复杂度报错 3.数据库连接报错 四、总结 (1)概念 数据库管理系统(Database Management

    2024年02月12日
    浏览(65)
  • MySQL 图书管理系统

    1.1.1 信息需求分析 (1) 图书信息:包括书籍编号,书籍名称,出版社,作者,库存量,出版日期,价格,库存,剩余量,类别等; (2) 借阅证信息:包括借阅证编号,办证日期,可借数量等; (3) 读者信息:读者编号,读者姓名,读者性别,读者电话 (4) 图书借还信息:包括图

    2024年02月04日
    浏览(45)
  • linux系统--------------mysql数据库管理

    目录 一、SQL语句 1.1SQL语言分类 1.2查看数据库信息    1.3登录到你想登录的库 1.4查看数据库中的表信息 1.5显示数据表的结构(字段) 1.5.1数据表的结构 1.5.2常用的数据类型: 二、关系型数据库的四种语言 2.1DDL:数据定义语言,用于创建数据库对象,如库、表、索引等 2.1.1库

    2024年03月24日
    浏览(53)
  • 图书管理系统(JDBC、MySQL)

        目录 一、建立连接 1. 思路 2. 代码 二、 管理员上架功能 1. 思路 2. 代码 三、读者注册功能 1. 思路 2. 代码 四、读者借书功能 1. 思路 2. 代码 五、读者还书功能 1. 思路 2. 代码 六、读者查看借阅历史功能 1. 思路 2. 代码  (1)Record 类 (2)实现功能代码     该图书

    2024年02月08日
    浏览(41)
  • 简单的图书管理系统(mysql)

     我的GitHub :GitHub - FunnyGuy525/LibraryManageSystem) 一、数据库结构设计 1.E-R图 2. 数据库创建语句 create database if not exists tsjy; use tsjy; 3. 表结构设计说明 借阅人表是一个实体表,它存储了借阅人的基本信息,如证件号、姓名、类别、已借数目和电话。证件号是借阅人表的主键,它可

    2024年02月08日
    浏览(62)
  • 【JAVA】MySQL数据库信息管理系统

    目录 前言 一、环境搭建 二、功能实现 1.商品信息类的创建 2.商品信息的查询 3.商品信息的添加 4.商品信息的修改 5.商品信息的删除 三、主类的调用 1.加载配置文件并获取数据库连接 2.界面的搭建 3.功能的选择 总结 JAVA实现的MySQL数据库信息管理系统 包含数据库的增删改查功

    2024年02月09日
    浏览(76)
  • MYSQL课程设计——图书管理系统(一)

      图书借阅管理是学校工作中的一项重要内容,学校图书馆,书目繁多,用户的信息冗杂,且信息数据在每天变化,如果采用人工方式进行管理控制,不仅工作量庞大,而且容易出错。浪费了许多的人力和物力,已不能适应时代的发展。在当今信息时代,这种传统的管理方法

    2024年02月04日
    浏览(42)
  • java 银行管理系统(连接数据库Mysql)

    程序共有三个文件 Bankmangement.java:包括程序运行的主函数,方法等 User.java:实体类,用于创建对象 JDBCUtils:对数据库方法进行封装 1.User实体类 数据库共有三张表,分别是admin管理员帐号,user用户账号,record用户记录。 2.Bankmangement功能图 Bankmangement User JDBCUtils

    2024年02月12日
    浏览(41)
  • 学生信息管理系统的数据库设计MySQL

    1.课程设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷

    2024年02月05日
    浏览(54)
  • Linux高级管理--安装MySQL数据库系统

            MySQL.是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠和易于使 用的特性,成为服务器领域中最受欢迎的开源数据库系统。在2008年以前,MySOL项目由MySQL AB公司进行开发,发布和支持,之后历经Sun 公司收购MySOL AB公司,Oracle公司收购Sun公司 的

    2024年02月04日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包