简单的图书管理系统(mysql)

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

 我的GitHub :GitHub - FunnyGuy525/LibraryManageSystem)

一、数据库结构设计

1.E-R图

2. 数据库创建语句

create database if not exists tsjy;

use tsjy;

3. 表结构设计说明

借阅人表是一个实体表,它存储了借阅人的基本信息,如证件号、姓名、类别、已借数目和电话。证件号是借阅人表的主键,它可以唯一标识每个借阅人。类别字段有一个检查约束,它限制了类别只能是教师或学生。已借数目字段有一个大于等于0的约束表示借书数量不会为负数,以及一个默认值0,它表示每个借阅人初始时没有借阅任何图书。

图书表是另一个实体表,它存储了图书的基本信息,如图书编号、书名、类别和是否借出。图书编号是图书表的主键,它可以唯一标识每本图书。是否借出字段是一个布尔类型,它表示图书是否已经被借出。类别字段有一个检查约束,它限制了每本书只能是已有的某一种类别。是否借出字段有一个默认值,它表示每本图书初始时都没有被借出。

借阅信息表是一个关系表,它存储了借阅人和图书之间的多对多关系,以及相关的借阅信息,如借出日期、应归还日期和实际归还日期。借阅信息表有两个外键:证件号和图书编号,它们分别引用了借阅人表和图书表的主键。这样就可以确保每条借阅信息都对应一个有效的借阅人和一个有效的图书。借出日期字段是一个日期/时间类型,它表示图书被借出的日期。应归还日期字段也是一个日期/时间类型,它表示图书应该归还的日期。应归还日期字段是一个计算字段,它根据借出日期加上30天来计算。实际归还日期字段也是一个日期/时间类型,它表示图书实际归还的日期。

4. 数据表创建语句

create table borrowers(

     id char(6) not null,

    name char(10) not null,

    type enum('teacher', 'student') NOT NULL,

    amount int not null default 0 check(amount >= 0),

    phone char(11) not null,

     primary key(id)

);

create table books(

     bookid char(20) not null,

    bookname char(20) not null,

    category enum('文学', '理学', '法学', '工学', '其他') not null,

    in_out boolean not null default false,

    primary key(bookid)

);

create table borrow_info(

     borrow_id int not null auto_increment,

    id char(6) not null,

    bookid char(20) not null,

    borrow_date date not null,

    due_date date generated always as (date_add(borrow_date, interval 30 day)),

    return_date date ,

    primary key(borrow_id),

    foreign key(id)references borrowers(id),

    foreign key(bookid)references books(bookid),

    check(return_date >= borrow_date or return_date is null)

);

二、功能设置

1、数据操作测试。

# 1.创建视图显示所有逾期未归还的借阅信息(包括借阅人姓名,借阅人类别,书名,借出日期,应归还日期,逾期时长)

create view overdue_info(借阅人姓名,借阅人类别,书名,借出日期,应归还日期,逾期时长) as

select name,type,bookname,borrow_date,due_date,datediff(curdate(),due_date)

     from borrow_info bi join borrowers b on bi.id = b.id

    join books bk on bi.bookid = bk.bookid

    where bi.return_date is null and curdate() > bi.due_date;

# 2.存储过程首先应当判断书籍未被借出去时借阅才能成功,

#数据才可以正确插入,否则借阅失败,同时抛出一个自定义的错误信息,提示这本书已经被借出。

#借阅人表中的借阅数量的修改可以通过触发器实现

delimiter $$

create procedure borrow_book(in p_id char(6),in p_bookid char(20))

begin

  declare v_in_out boolean;

  select in_out into v_in_out from books where bookid = p_bookid;

  if v_in_out = false then

    # update borrowers set amount = amount + 1 where id = p_id;

    update books set in_out = true where bookid = p_bookid;

    insert into borrow_info(id, bookid, borrow_date) values(p_id, p_bookid, curdate());

  else

    signal sqlstate '45000' set message_text = '书籍已被借出';

  end if;

end$$

delimiter ;

#3. 还书将书籍在库信息修改为true,表示归还入库,同时将今天的日期填入借阅信息表中的归还日期。

# 借阅人表中的借阅数量的修改可以通过触发器实现

delimiter $$

create procedure return_book(in p_id char(6),in p_bookid char(20))

begin

     # update borrowers set amount = amount - 1 where id = p_id;

    update books set in_out = false where bookid = p_id;

    update borrow_info set return_date = curdate() where id = p_id and bookid = p_bookid;

end$$

delimiter ;

#4.查询借阅人姓名

delimiter $$

create function get_borrower_name(p_bookid char(20)) returns char(10)

begin

     declare v_name char(10);

    select name into v_name from borrowers b

    join borrow_info bi on b.id = bi.id

    join books bk on bk.bookid = bi.bookid

    where bi.bookid = p_bookid;

    return v_name;

end$$

delimiter ;

#5.计算某借阅人还能借阅的图书数目,学生限额5本,教师限额10本

delimiter $$

create function get_available_books(p_id char(6)) returns int

begin

     declare v_type enum('teacher', 'student');文章来源地址https://www.toymoban.com/news/detail-482764.html

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

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

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

相关文章

  • 用Java语言实现一个简单的图书管理系统

    这个系统有两个登录选项:用户和管理员,选择两者进入都需要输入账号和密码进行审核。 用户有查看图书列表,借阅图书,归还图书这些选项,管理员有查看图书列表,增加图书,删除图书,修改图书这些选项。 我们先建一个Book类,用来存放图书名称以及借阅状态,图书

    2024年02月09日
    浏览(33)
  • 图书管理系统(JDBC、MySQL)

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

    2024年02月08日
    浏览(32)
  • Java实现一个简单的图书管理系统(内有源码)

    哈喽哈喽大家好啊,之前作者也是讲了Java不少的知识点了,为了巩固之前的知识点再为了让我们深入Java面向对象这一基本特性,就让我们完成一个图书管理系统的小项目吧。 项目简介: 通过管理员和普通用户的两种操作界面,利用其中的方法以及对象之间的交互,来实现对

    2024年02月11日
    浏览(26)
  • 用Java开发一个简单的图书馆管理系统

    图书馆管理系统是一种用于管理图书馆材料、用户和借还书记录等信息的软件系统。Java是一种流行的编程语言,它可以用于开发图书馆管理系统。在本篇文章中,我们将介绍如何使用Java编写一个简单的图书馆管理系统。 在设计系统时,需要考虑到各种各样的因素,例如系统

    2024年02月08日
    浏览(43)
  • Python 基础 (十)Python实现简单的图书管理系统

    Python 基础 (一)Python基本认识与环境搭建 Python 基础 (一)Python基本认识与环境搭建 Python 基础 (二)Python变量与基本数据类型 Python 基础 (二)Python变量与基本数据类型 Python 基础 (三)Python基本语句与基本运算 Python 基础 (三)Python基本语句与基本运算 Python 基础 (四

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

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

    2024年02月04日
    浏览(30)
  • 基于Python+MySQL的图书管理系统

    目录 前言 一、开发环境与开发工具 二、系统需求分析 三、系统功能分析 四、数据库设计 1、数据库概念结构设计 (1)数据流程图  (2)系统ER图 2、数据库逻辑结构设计 3、数据库物理结构设计 五、数据库应用系统各个模块代码设计          1、主界面模块 2、登录界

    2024年02月02日
    浏览(32)
  • java+Mysql 图书管理系统(idea)

    目录 前言 部分界面截图 登录界面 注册界面 图书管理界面 关于我们界面  部分代码 登录界面 数据库工具类 jdk 版本:openjdk version \\\"11.0.12\\\" MySql版本:5.7.40 加(vx:lixuanzi99313)帮调试 调试说明:远程协助 源代码:链接:https://github.com/lixuanzi/LibraryMansgementSystem 演示视频 【j

    2024年02月11日
    浏览(24)
  • 图书管理系统2.0——mysql数据库

    1、使用技术 原生java+swing+jdbc驱动+mysql 没有任何框架 2、简要功能 3、 源码 https://gitee.com/wang-yongyan188/bms.git 1、登录 代码运行后 ,会弹出登录窗口 输入用户名(用户名唯一),账号密码 且密码不可见 如果输入正确,会判断是管理员还是用户,进入不同页面菜单 如果输入错误

    2024年02月06日
    浏览(46)
  • java web + mysql 实现图书管理系统

    鱼弦:CSDN内容合伙人、CSDN新星导师、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen)   要使用Java Web和MySQL实现图书管理系统,你可以按照以下步骤进行操作: 数据库设计: 创建一个MySQL数据库,并命名为图书管理系统。

    2024年02月03日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包