1、项目简介
图书馆数据库,该项目同时提供pythonweb可视化展示界面,也可提供相关报告数据,可以用来作为数据库系统设计的期末作业
主要设计到如下几个功能:
1.1管理员方面
- 增、删、改、挂失图书信息和读者信息;
- 查看用户信息和图书信息。
- 登录管理员界面
- 为读者办理借书还书
1.2读者方面
- 登录读者界面
- 查询借书记录和个人信息
2、项目展示
如下是部分数据流图:
2.1:读者注册
2.2图书上架
2.3图书搜索
2.4图书借阅
2.5借书记录搜索
3、项目数据字典
数据项名 | 别名 | 数据类型 | 说明 |
读者编号 | reader_id | varchar(5) PK | 读者证的编号按顺序系统分配 |
姓名 | reader_name | varchar(20) | 读者姓名 |
性别 | sex | char(2) | 读者性别 |
出生日期 | birthday | date | 读者出生日期 |
电话 | phone | varchar(20) | 读者电话 |
手机 | mobile | varchar(20) | 读者手机 |
证件名称 | card_name | varchar(8) | 读者的证件可以是身份证学生证等 |
证件编号 | card_id | varchar(18) | 读者的证件号 |
会员级别 | level | varchar(6) | 有三个级别,普通银卡金卡 |
办证日期 | day | date | 即注册日期 |
读者登录密码 | Password(Readers表) | varchar(45) | 读者登录系统中时使用的密码 |
图书编号 | book_id | varchar(5) | 图书的编号系统分配 |
书名 | book_name | varchar(50) | 书的名字 |
作者 | author | varchar(20) | 书的作者 |
出版社 | publishing | varchar(20) | 书的出版社 |
类别编号 | category_id | varchar(5) | 书的类别编号 |
单价 | price | double | 书的价格 |
入库日期 | date_in | datetime | 入库的时间即图书上架时间 |
库存数量 | quantity_in | int | 上架的书的数量 |
借出数量 | quantity_out | int | 书借出去的数量 |
遗失数量 | quantity_loss | int | 书的丢失的数量 |
出借日期 | date_borrow | date | 书借出去的日期在借阅中生成 |
应还日期 | date_return | date | 根据会员的级别确定的日期 |
遗失 | loss | char(2) | 有“否”“是”区分书是否丢失了 |
类别名称 | category | varchar(20) | 类别的名字如“计算机” |
最长出借天数 | days | smallint | 根据会员级别相应天数 |
最多借书册书 | numbers | smallint | 根据会员级别能借最多的书 |
会费 | fee | smallint | 会员级别所要的费用(单位:元) |
管理员ID | User_ID | Varchar(20) | 管理员登录用ID |
管理员密码 | Password(admin表) | Varchar(20) | 管理员登录用密码 |
4、系统ER图
5、部分数据表设计
CREATE TABLE `admin` (
`userID` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
PRIMARY KEY (`userID`,`password`),
UNIQUE KEY `userID_UNIQUE` (`userID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `book_category` (
`category_id` varchar(5) NOT NULL DEFAULT '',
`category` varchar(20) DEFAULT NULL,
PRIMARY KEY (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `books` (
`book_id` varchar(5) NOT NULL,
`book_name` varchar(50) NOT NULL,
`author` varchar(20) DEFAULT NULL,
`publishing` varchar(20) DEFAULT NULL,
`category_id` varchar(5) DEFAULT NULL,
`price` double DEFAULT NULL,
`date_in` date DEFAULT NULL,
`quantity_in` int(11) NOT NULL,
`quantity_out` int(11) NOT NULL,
`quantity_loss` int(11) NOT NULL,
PRIMARY KEY (`book_id`),
KEY `category_id` (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;