mysql 图书管理系统
- 格式:doc
- 大小:253.50 KB
- 文档页数:24
图书管理系统数据库设计说明书图书管理系统数据库设计说明书1、引言本文档旨在对图书管理系统的数据库设计进行详细说明,包括数据库架构、表结构设计、数据流图等内容,以便于系统开发人员进行系统开发和维护。
2、数据库架构设计2.1 数据库类型本系统将采用关系型数据库,具体使用的数据库管理系统为MySQL。
2.2 数据库服务器架构本系统将采用分布式数据库架构,包括一个主数据库服务器和多个副本数据库服务器。
2.3 数据库服务器部署主数据库服务器和副本数据库服务器将部署在不同的物理机器上,以实现数据的冗余备份和负载均衡。
3、数据库表设计3.1 用户表(User)字段:用户ID、用户名、密码、姓名、年龄、性别、联系方式、电子邮箱、注册时间3.2 图书表(Book)字段:图书ID、图书名称、作者、出版社、出版日期、图书类别、价格、库存数量3.3 图书借阅表(Borrow)字段:借阅ID、用户ID、图书ID、借阅日期、归还日期、借阅状态3.4 图书类别表(Category)字段:类别ID、类别名称、类别描述3.5 出版社表(Publisher)字段:出版社ID、出版社名称、联系方式、地质4、数据流图设计4.1 用户注册流程图描述用户注册过程,包括用户输入信息、系统验证信息、保存用户信息等流程。
4.2 用户借阅图书流程图描述用户借阅图书的过程,包括用户查找图书、用户借阅图书、系统更新库存数量等流程。
4.3 用户归还图书流程图描述用户归还图书的过程,包括用户查找借阅记录、用户归还图书、系统更新借阅状态等流程。
5、附件本文档附带的相关附件包括:- 数据库表结构设计文档- 数据流图设计文档- ER图设计文档6、法律名词及注释本文档涉及的法律名词及其注释如下:- 数据库管理系统(Database Management System,简称DBMS):是一种管理和整理数据库的软件系统。
- 关系型数据库(Relational Database):是一种基于关系模型的数据库,采用表格来组织和管理数据。
大工14秋《软件工程》图书管理系统--可直接上交随着计算机技术的飞速发展,各个领域都在不断地应用计算机技术来提高工作效率。
然而,我校图书馆仍然采用传统的手工管理方式,效率低下,易出错,手续繁琐,耗费大量人力。
为了提高图书馆的管理效率,我们特别编写了这个图书管理系统软件。
本需求的编写目的是为了研究图书管理系统软件的开发途径和应用方法,并为项目策划、概要设计和详细设计提供基础,同时也为维护人员进行内部维护、信息更新、验收和测试提供依据。
本需求的预期读者包括与图书管理系统软件开发有联系的决策人、开发组成员和软件验证者。
2.需求分析2.1功能需求本系统主要包括以下功能模块:图书信息管理模块、读者信息管理模块、借还书管理模块、系统管理模块和统计查询模块。
2.1.1图书信息管理模块该模块主要用于实现对图书信息的录入、修改、查询和删除等操作。
其中,图书信息包括图书编号、图书名称、作者、出版社、出版日期、价格、分类号、馆藏数量等。
2.1.2读者信息管理模块该模块主要用于实现对读者信息的录入、修改、查询和删除等操作。
其中,读者信息包括读者编号、姓名、性别、年龄、联系方式等。
2.1.3借还书管理模块该模块主要用于实现对借阅信息的录入、修改、查询和删除等操作。
其中,借阅信息包括借阅编号、读者编号、图书编号、借阅日期、应还日期、归还日期等。
2.1.4系统管理模块该模块主要用于实现对系统用户、权限、日志等信息的管理。
2.1.5统计查询模块该模块主要用于实现对图书、读者、借阅等信息的统计查询功能,包括图书借阅排行榜、读者借阅排行榜、借阅信息统计等。
2.2性能需求本系统应满足以下性能需求:2.2.1响应时间系统在任何时候都应该有较快的响应速度,用户在进行各种操作时不应该出现明显的卡顿现象。
2.2.2并发处理能力系统应该具有较强的并发处理能力,能够同时处理多个用户的请求。
2.2.3数据安全性系统应该具有较高的数据安全性,能够保护图书馆的图书、读者和借阅等信息不被非法获取、篡改或破坏。
《图书管理系统》需求规格说明书《图书管理系统》需求规格说明书一、引言随着图书馆藏书数量的增加,读者数量的增多,图书管理成为一项重要的任务。
为了提高图书管理的效率和便利性,开发一款全新的图书管理系统变得十分必要。
本文将详细阐述《图书管理系统》的需求规格,包括系统的功能和特性,以及每个功能的详细需求。
二、需求列表1、系统设计1、界面设计:提供直观、易用的用户界面,以便读者进行图书查询、借阅、归还等操作。
2、功能模块:将系统分为多个功能模块,如用户管理、借阅管理、库存管理、数据统计等。
3、数据库设计:设计适合系统需求的数据库结构,包括读者信息、图书信息、借阅记录等。
2、用户管理1、注册:提供用户注册功能,收集用户基本信息。
2、登录:提供用户登录功能,验证用户身份。
3、信息修改:允许用户修改个人信息。
4、密码修改:允许用户修改密码。
3、借阅管理1、图书查询:提供多种查询方式,如按书名、作者、出版社等查询。
2、借书:允许用户借阅图书。
3、还书:允许用户归还图书。
4、续借:允许用户续借图书。
4、库存管理1、图书入库:将新图书入库,更新库存。
2、图书出库:将图书借出,更新库存。
3、库存查询:查询当前库存状态。
5、数据统计1、借阅统计:统计借阅记录,生成报表。
2、库存统计:统计库存记录,生成报表。
3、其他统计:根据需求进行其他相关统计。
三、需求分析1、系统设计1、界面设计:要求界面简洁、美观,易于使用,提供良好的用户体验。
2、功能模块:要求各模块之间耦合度低,高内聚,便于系统维护和扩展。
3、数据库设计:要求数据库结构合理,能够满足系统的查询、更新等操作需求。
2、用户管理1、注册:要求用户信息存储安全,不可泄露。
2、登录:要求登录过程简单、快捷,避免长时间等待。
3、信息修改:要求信息修改过程简单易用,保障信息安全。
4、密码修改:要求密码修改过程安全可靠,防止密码泄露。
3、借阅管理1、图书查询:要求查询速度快,结果准确,支持多种查询方式。
图书管理系统数据库1. 简介图书管理系统是一种用于管理图书馆或其他图书资源机构的软件系统。
它旨在提供一个方便的途径来管理图书的借阅、归还、查询等操作。
数据库在图书管理系统中起到了关键的作用,它用于存储和管理图书、用户、借阅记录等相关数据。
本文将介绍图书管理系统数据库的设计,包括数据库的结构和主要表的字段以及它们之间的关系。
2. 数据库结构图书管理系统数据库的结构主要包括以下几个方面:•图书信息表(book table)•用户信息表(user table)•借阅记录表(borrow table)•书架信息表(shelf table)•图书分类表(category table)下面将分别介绍这些表的字段和关系。
图书信息表存储了图书的基本信息,包括图书的编号、名称、作者、出版社、出版日期、价格等。
字段如下:字段名类型说明book_id int 图书编号(主键)name varchar(100) 图书名称author varchar(100) 作者publisher varchar(100) 出版社pub_date date 出版日期price decimal(10,2) 价格用户信息表存储了用户的基本信息,包括用户的编号、姓名、年龄、性别、联系方式等。
字段如下:字段名类型说明user_id int 用户编号(主键)name varchar(100) 用户姓名age int 用户年龄gender char(1) 用户性别(M/F)contact varchar(100) 联系方式2.3 借阅记录表借阅记录表存储了用户借阅图书的相关信息,包括借阅记录的编号、用户编号、图书编号、借阅日期、归还日期等。
字段如下:字段名类型说明borrow_id int 借阅记录编号(主键)user_id int 用户编号(外键)book_id int 图书编号(外键)borrow_date date 借阅日期return_date date 归还日期2.4 书架信息表书架信息表存储了图书馆中的书架信息,包括书架的编号、位置、容量等。
图书管理系统数据库设计一、系统概述1、系统简介图书管理是每个图书馆都需要进行的工作。
一个设计良好的图书管理系统数据库能够给图书管理带来很大的便利。
2、需求分析图书管理系统的需求定义为:1.学生可以直接通过借阅终端来查阅书籍信息,同时也可以查阅自己的借阅信息。
2.当学生需要借阅书籍时,通过账号密码登陆借阅系统,借阅系统处理学生的借阅,同时修改图书馆保存的图书信息,修改被借阅的书籍是否还有剩余,同时更新学生个人的借阅信息。
3.学生借阅图书之前需要将自己的个人信息注册,登陆时对照学生信息。
4.学生直接归还图书,根据图书编码修改借阅信息5.管理员登陆管理系统后,可以修改图书信息,增加或者删除图书信息6.管理员可以注销学生信息。
通过需求定义,画出图书管理系统的数据流图:数据流图二、系统功能设计画出系统功能模块图并用文字对各功能模块进行详细介绍。
系统功能模块图:三、数据库设计方案图表1、系统E-R模型总体E-R图:精细化的局部E-R图:学生借阅-归还E-R图:管理员E-R图:2、设计表给出设计的表名、结构以及表上设计的完整性约束。
student:book:book_sort:borrow:存储学生的借书信息return_table:存储学生的归还信息ticket:存储学生的罚单信息manager:3、设计索引给出在各表上建立的索引以及使用的语句。
student:1.为stu_id创建索引,升序排序sql:create index index_id on student(stu_id asc);2.为stu_name创建索引,并且降序排序sql:alter table student add index index_name(stu_name, desc);插入索引操作和结果如下所示:mysql> create index index_id on student(stu_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql> alter table student add index index_name(stu_name desc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql>book:1.为book_id创建索引,升序排列sql:create index index_bid on book(book_id);2.为book_record创建索引,以便方便查询图书的登记日期信息,升序:sql:create index index_brecord on book(book_record);插入索引的操作和结果如下所示:mysql> create index index_bid on book(book_id);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql> create index index_brecord on book(book_record);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0borrow:1.为stu_id和book_id创建多列索引:sql:create index index_sid_bid on borrow(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql> create index index_sid_bid on borrow(stu_id asc, book_id asc); Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0return_table:1.为stu_id和book_id创建多列索引:sql:create index index_sid_bid on return_table(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql> create index index_sid_bid_r on return_table(stu_id asc, book_id asc); Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0ticket:1. 为stu_id和book_id创建多列索引:sql:create index index_sid_bid on ticket(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql> create index index_sid_bid on ticket(stu_id asc, book_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0manager:1.为manager_id创建索引:sql:create index index_mid on manager(manager_id);插入索引的操作和结果如下所示:mysql> create index index_mid on manager(manager_id); Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 04、设计视图给出在各表上建立的视图以及使用的语句。
基于PHP+MySQL图书管理系统设计与实现一、引言随着信息技术的快速发展,图书管理系统在图书馆及各类图书机构中发挥着重要的作用。
采用计算机技术构建图书馆管理系统能够提高管理效率,减轻工作负担,并且便于读者查找所需图书资源。
本文将介绍一种基于PHP+MySQL的图书管理系统的设计与实现。
二、系统需求分析1. 功能需求本图书管理系统需要包含以下基本功能:(1) 图书信息管理:包括图书的录入、修改、删除和查询等操作。
(2) 读者信息管理:包括读者的注册、登录、修改个人信息等操作。
(3) 图书借阅管理:包括图书借阅、归还、续借等操作,并能记录借阅历史。
(4) 图书馆管理员管理:包括管理员的注册、登录、权限管理等操作。
(5) 报表统计功能:能够统计图书借阅情况、读者借阅排行等数据。
2. 性能需求系统应具备以下性能要求:(1) 快速响应:系统具备快速响应读者和管理员的请求,保证系统流畅运行。
(2) 数据安全性:系统需要采用安全机制,保护图书和读者的信息。
(3) 扩展性:系统应具备良好的扩展性,以便后续对功能进行拓展。
三、系统设计与实现1. 开发环境本系统采用PHP语言作为开发语言,结合MySQL数据库进行数据存储。
开发环境采用Apache服务器,支持HTTP协议。
2. 数据库设计(1) 图书表(Book):包含图书的编号、名称、作者、出版社等属性。
(2) 读者表(Reader):包含读者的编号、姓名、性别、年龄等属性。
(3) 借阅表(Borrow):包含借阅记录的编号、图书编号、读者编号、借阅日期、归还日期等属性。
(4) 管理员表(Admin):包含管理员的编号、用户名、密码等属性。
3. 页面设计(1) 登录页面:读者和管理员可以分别通过用户名和密码登录系统。
(2) 图书查询页面:包含图书名称、作者等查询条件,可以根据条件查询所需图书。
(3) 借阅页面:读者可以查询和借阅图书,并记录借阅信息。
(4) 归还页面:读者可以查询自己借阅的图书,并进行归还操作。
1管理员表〔L_Administrator〕字段名字段说明数据类型约束备注a_id 管理员编号int Primary Key Identity(1000,1)a_name 管理员XX nvarchar(20) Not nulla_pwd 管理员密码varchar(20) Not Null*/use Librarygocreate table L_Administrator(a_id int not null primary key Identity(1000,1),a_name nvarchar(20) not null,a_pwd varchar(20) not null);/*2职务类型表〔L_Duty〕字段名字段说明数据类型约束备注d_id 职务编号int Primary Key Identity(1000,1)d_name 职务名称nvarchar(20) Not nulld_maxcount 最大借阅数量tinyint Not Null*/use Librarygocreate table L_Duty(d_id int not null primary key Identity(1000,1),d_name nvarchar(20) not null,d_maxcount tinyint not null);/*3读者表〔L_Reader〕字段名字段说明数据类型约束备注r_id 读者编号bigint Primary Keyr_name 读者XX nvarchar(20) Not Nullr_pwd 读者密码varchar(20) Not Nullr_sex 读者性别bit Not Nullr_typeid 职务类型int Foreign Key 职务类型表的主键r_academy 所在院系nVarchar(20)r_major 专业nVarchar(20)r_contact 联系方式Varchar(20)r_email nvarchar(20)r_photo 读者照片nVarchar(100) 存的是读者照片的路径*/use Librarycreate table L_Reader(r_id bigint not null primary key,r_name nvarchar(20) not null,r_pwd varchar(20) not null,r_sex bit not null,r_typeid int not null,r_academy nvarchar(20),r_major nvarchar(20),r_contact varchar(20),r_email varchar(20),r_photo nvarchar(100));alter table L_Reader add constraint fk_dtypeid foreign key(r_typeid) references L_Duty(d_id)on delete cascadeon update cascade;/*创立一个存储过程*/use Librarygocreate procedure readerr_id bigint,r_name nvarchar(20),r_pwd varchar(20),r_sex bit,r_typeid int,r_academy nvarchar(20),r_major nvarchar(20),r_contact varchar(20),r_email varchar(20),r_photo nvarchar(100)asbegininsert into L_Reader(r_id,r_name,r_pwd,r_sex,r_typeid,r_academy,r_major,r_contact,r_email,r_photo)values(r_id,r_name,r_pwd,r_sex,r_typeid,r_academy,r_major,r_contact,r_email,r_photo);end/*4图书类型表〔L_BookType〕字段名字段说明数据类型约束备注bt_id 类型编号int Primary Key Identity(1000,1)bt_name 类型名称nVarchar(20) Not null*/use Librarycreate table L_BookType(bt_id int not null primary key Identity(1000,1),bt_name nvarchar(20) not null);/*5信息表〔L_Publishing〕字段名字段说明数据类型约束备注ISBN 国际标准图书编码char(13) Primary Keyp_name 名称nvarchar(30) Not Null*/use Librarygocreate table L_Publishing(ISBN char(13) not null primary key,p_name nvarchar(30) not null);/*6图书信息表〔L_Book〕字段名字段说明数据类型约束备注b_id 图书编号Varchar(30) Primary Key Identity(1000,1)b_name 图书名称nvarchar(30) Not NullISBN 国际标准图书编码char(13) Foreign Key 13位数字组成b_bkcaseid 书架编号Varchar(20)b_price 定价Numeric(10,2)b_author 作者nvarchar(20)b_typeid 类型编号int Foreign Keyb_intime 入库时间DateTimeb_synopsis 图书简介Nvarchar(500)b_state 图书状态bit 0--借出,1--没有借出b_photo 封面图片Nvarchar(100) 存的是路径*/use Librarygocreate table L_Book(b_id varchar(20) not null primary key ,b_name nvarchar(30) not null,ISBN char(13),b_bkcaseid varchar(20),b_price Numeric(10,2) not null,b_author nvarchar(20),b_typeid int,b_intime DateTime,b_synopsis nvarchar(1000),b_state bit not null default 0,b_photo nvarchar(100));alter table L_Book add constraint fk_btypeid foreign key(b_typeid) references L_BookType(bt_id) on delete cascadeon update cascade;alter table L_Book add constraint fk_bisbn foreign key(ISBN) references L_Publishing(ISBN)on delete cascadeon update cascade;alter table L_Book drop column b_bkcaseid/*创立存储过程*/use Librarygocreate procedure bookb_name nvarchar(30),ISBN char(13),b_bkcaseid varchar(20),b_price numeric(10,2),b_author nvarchar(20),b_intime datetime,b_synopsis nvarchar(1000),b_photo nvarchar(100)asbegininsert into L_Book(b_name,ISBN,b_bkcaseid,b_price,b_author,b_intime,b_synopsis,b_photo) values(b_name,ISBN,b_bkcaseid,b_price,b_author,b_intime,b_synopsis,b_photo);end/*7借阅管理表〔L_Borrow〕字段名字段说明数据类型约束备注bw_id 借阅编号int Primary Key Identity(1,1)bw_bookid 图书编号Varchar(20) Foreign Keybw_readerid 读者编号Int Foreign Keybw_outtime 借出日期DateTime N ot Nullbw_endtime 到期日期DateTime N ot Nullbw_backtime 归还日期DateTimebw_isexpired 是否过期Bit Not Null 默认为0--不过期bw_fine 罚款数目Numeric (10,2) 过期后才计算罚款数目*/use Librarygocreate table L_Borrow(bw_id int not null primary key Identity(1,1),bw_bookid varchar(20),bw_readerid bigint ,bw_outtime datetime not null,bw_endtime as dateadd(d,30,bw_outtime),bw_backtime datetime,bw_isexperied bit default 0,bw_fine numeric(10,2) default 0.00);alter table L_Borrow add constraint fk_bookid foreign key(bw_bookid) references L_Book(b_id)on delete cascadeon update cascade;alter table L_Borrow add constraint fk_readerid foreign key(bw_readerid) references L_Reader(r_id) on delete cascadeon update cascade;/*8图书资源表〔L_Resource〕字段名字段说明数据类型约束备注rs_id 资源编号Int Primary Key Identity(1000,1)rs_name 资源名称nVarchar(30) Not nullrs_synopsis 资源简介nVarchar(500)rs_amount 资源大小int 单位为KB或是MBrs_type 资源类型Varchar(20) 类似于doc、xsl、ppt、pdf、zip、rar、MP3、wmv 等常用格式*/use Librarygocreate table L_Resource(rs_id int not null primary key Identity(1000,1),rs_name nvarchar(30) not null,rs_synopsis nvarchar(500),rs_amount bigint,rs_type varchar(20));/*9图书评论表〔L_BookMarks〕字段名字段说明数据类型约束备注ISBN 国际标准图书编码char(13) Foreign Keybm_contents 评论内容Nvarchar(500) Not Nullbm_time 评论时间DateTime N ot Null*/use Librarygocreate table L_BookMarks(ISBN char(13) not null,bm_contents nvarchar(500) not null,bm_time datetime not null);alter table L_BookMarks add constraint fk_bmisbn foreign key(ISBN) references L_Publishing(ISBN)on delete cascadeon update cascade;/*10书架信息表〔L_BookCase〕字段名字段说明数据类型约束备注bc_id 书架编号int Primary Key Identity(1000,1)bc_typeid 类型编号int Foreign Key*/use Librarygocreate table L_BookCase(bc_id int not null primary key Identity(1000,1),bc_typeid int not null);alter table L_BookCase add constraint fk_bctypeid foreign key(bc_typeid) references L_BookType(bt_id);。
电子科技大学成都学院实验报告册课程名称: mysql图书管理系统*名:**学号: **********院系:微电子技术系专业:集成(嵌入式)*师:**2012 年 12 月 22 日图书管理系统小组成员:徐源唐东南1.背景1.1.1课程设计背景某大学图书馆开发一个图书管理系统,要求在读者登记处可以将读者的信息添加,信息系统中保存,当读者信息发生变化,对计算机内容进行修改,当读者办理退卡手续要删除此读者信息,图书管理负责图书和出版社的管理,读书借还处进行借书管理,还书管理,罚款处理,库存查询,图书排行榜,生成超期未还书的读者,进行通知.给不同用户设置不同权限,供用户访问数据库.1.1.2编写目的让学生熟练掌握mysql中的创建数据库、创建表、显示、查询、select语句、视图、存储过程、创建检索、对表的添加、删除、修改和用户权限的设置等基本运用,并通过编写这个图书管理系统,来实际演练,达到融会贯通的效果。
1.1.3软件定义Mysql是目前最流行的开源的中小型关系数据管理系统,目前被广泛的应用于internet上得中小型网站中,它由mysql AB公司开发、发布并支持。
本实验用的是mysql 5.1版本1.1.4开发环境本实验用的是mysql 5.1版本,windows71.2数据需求图书馆管理信息系统需要完成功能主要有:1. 读者基本信息的输入,包括借书证编号、读者姓名、读者性别。
2.读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。
3.书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。
4.书籍类别信息的查询、修改,包括类别编号、类别名称。
5.书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。
6.书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。
7.借书信息的输入,包括读者借书证编号、书籍编号、借书日期。
8.借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。
9.还书信息的输入,包括借书证编号、书籍编号、还书日期。
10.还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。
11.超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。
12.超期还书罚款查询,删除,包括读者借书证编号、读者姓名、书籍编号、书籍名称,罚款金额等1.3事物需求(1)在读者信息管理部分,要求:a.可以查询读者信息。
b.可以对读者信息进行添加及删除的操作。
(2 )在书籍信息管理部分,要求:a.可以浏览书籍信息,要求:b.可以对书籍信息进行维护,包括添加及删除的操作。
(3)在借阅信息管理部分,要求:。
a.可以浏览借阅信息。
b.可以对借阅信息进行维护操作。
(4)在归还信息管理部分,要求:a.可以浏览归还信息b.对归还信息可修改维护操作(5)在管理者信息管理部分,要求:a.显示当前数据库中管理者情况。
b.对管理者信息维护操作。
(6)在罚款信息管理部分,要求:a.可以浏览罚款信息b.对罚款信息可以更新1.4关系模式(一)书籍类别(种类编号,种类名称)(二)读者(借书证编号,读者姓名,读者性别,读者种类,登记时期)(三)书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期)(四)借阅(借书证编号,书籍编号,读者借书时间)(五)还书(借书证编号,书籍编号,读者还书时间)(六)罚款(借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间)以上通过关系代数方法的进行运算得到所需要的结果,在实验结果中可以看到。
1.5流程图借书及图书剩余量更新功能(利用存储过程实现)delimiter $$create procedure js_manager(in r_id char(10),in r_name char(10),in sex char(2), in r_sf char(8), in birthday datetime, in r_ic char(18),in r_tele char(11),in r_addr varchar(30), in r_zip char(6),in b_id,char(6),in js_time datetime,in hs_time datetime, in js_quantity int) begininsert into borrowing_place values(r_id,b_id,js_time,hs_time,js_quantity);update librarian set book_sy=book_sy-js_quantity where book_id=b_id andread_id=r_id;//更新图书剩余量select read_name from readers where read_id=r_id;if read_name =null then //readers表中没有r_id的个人信息的话,将登记insert into readers values(r_id,r_name,sex,r_sf,birthday,r_ic,r_tele,r_addr,r_zip);end if;end$$程序实现的功能是借阅者借书时登记其个人信息,若以前登记过,就不在重复插入,将借阅者所接的书和借书日期、应该还书日期、和借书数量做记录,同时更新图书的剩余量方便后来的借阅者查询是否这本书还有。
还书、图书剩余量及罚款功能(利用存储过程实现)delimiter $$create procedure book.fines(in sjhs datetime ,in xh char(10), in sh char(10))begindeclare day tinyint;select datediff(sjhs,hs_time) into day from borrowing_place where read_id=xh andbook_id=sh); //计算出超期天数将天数存到day的变量中if day >0thenselect (day*0.2*js_quantity) as '罚金' from borrowing_place where book_id=sh andread_id=xh; //计算出超期借阅者应该的罚款金额end if;update librarian set book_sy=book_sy + (select js_quantity from borrowing_placewhere book_id=sh and read_id=xh);//更新图书剩余量delete from borrowing_place where read_id=xh and book_id=sh;//删除此条还书信息end$$程序实现的功能是借阅者还书时根据借阅的编号和所还书的号来计算出超期时间,如果超期,就计算出罚金,对借阅者进行罚款处理,同时更新图书的剩余量和删除这位借阅者的借阅信息。
图书借阅排行榜功能(利用存储过程实现)delimiter $$create procedure js_ph()beginselect book_id,book_name,book_sy from librarian group by book_sy;end$$程序的功能是通过select语句选择出图书剩余量和图书相关信息,根据图书剩余量升序排列,图书编号排在最前的是借出数量最多,以此增加了图书知名度。
图书剩余量查询功能(利用存储过程实现)delimiter $$create procedure sycx()select book_id,book_name,book_sy from librarian group by book_id;end$$程序的功能是查询出图书剩余量,供借阅者查看,以免造成借书时却没有这本书的尴尬局面。
催还过期图书通知功能(通过视图功能实现)create view hs_remind()asselect read_id,book_id, datediff(hs_time,now()) as '超期天数' from borrowing_placegroup by read_id;select * from hs_time where 超期天数>0 ;程序利用视图实现计算出借阅者所借书的超期天数,通过select选择出超期天数为正的借阅者学号,方便管理员知道哪些借阅者有超期未还的书,好及时通知还书。
退借阅卡删除登记信息功能(通过存储过程实现)delimiter $$create procedure logout(in r_id char(10))select book_id from borrowing_place where read_id=r_id;delete form readers,jtcy where read_id=r_id;end$$程序实现的功能是借阅者要求注销借阅卡时,根据借阅卡上的借阅编号,来删除登记信息,当然先查询借阅处信息表,看看该借阅者有没有未还完的书。
借阅者基本信息修改功能(通过存储过程实现)delimiter $$create procedure read_alter(in r_id char(10),in r_name char(10),in shenfen char(10),in r_ic char(18),in tel char(11),in r_addr char(30))beginupdate readers setread_id=r_id,read_name=r_name,read_sf=shenfen,read_ic=r_ic,read_tele=tel,read_addr=r_addr;end$$程序功能是通过update更新借阅者的重要信息,达到借阅者信息改变时修改借阅者信息,这种方法有点修改起来有点麻烦,但是由于能力有限,现阶段只能凑合着用了哦。
2.E-R图根据1)所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。
图书管理信息系统可以划分的实体有:书籍类别信息实体、读者信息实体、书籍信息实体、借阅记录信息实体,归还记录信息实体。
用E-R图一一描述这些实体。
借阅者(readers)与图书管理处(librarian)实体集之间的联系的关系模式为:Readers(read_id,jt_id,read_name,sex,read_sf,read_ic,read_tele,birthday,read_addr,read_zip)Librarian(book_id ,book_name,book_pub,book_author,book_price,book_num,book_sy) Borrowing_place(read_id,book_id,js_time,hs_time,js_quantity)Borrowing_place的主码是由read_id和book_id两个属性的组合起来构成一个主码3.数据表设计1.概念结构设计在mysql中通常把每一类数据对象的个体称为‘实体’,每类对象个体的集合称为实体集,这个图书管理系统主要涉及‘借阅者’、‘图书’两个实体集,其他的非主要实体集为‘家庭成员’。