共享图书管理系统数据库实现


共享图书管理系统数据库实现

## 系统目标:
通过系统分析对基本功能进行定型,在调研和收集现有投入使用的图书管理系统的基础上,增加符合本系统需求所要的功能。其中基础功能包括:图书信息的录入和编目,图书的借阅、续借和归还,图书定期盘点、损坏处理和借阅超期功能,读者和图书管理员的权限管理。根据以上功能设计实现系统,进行测试和改进或添加现有功能,实现借阅-归还-共享为一体的图书系统。


一、数据库设计

对于一个共享图书管理系统,对所要处理的数据和信息主要有以下几个。

1.用户

使用系统的用户首先要注册,必须填写用户名,密码,手机号,通过自增生成的id来唯一区分用户。用户首先是借阅者,拥有借阅书籍的权限,其次是潜在的分享者,可以把自己的书籍共享进入平台。

2.书籍

书籍必须拥有书籍id,书籍名称,出版社,出版日期等等信息,关联一张主题表,以分类书籍其特有的图书主题,其次也关联借阅、共享、评论表,以此展示书籍被用户所关心的数据和信息。

3.评论

读者可以针对图书进行评论,如下图所示,包括评论内容,评论时间,评论者,评分等信息。注意评论针对的是一部图书,而并非某一本书(因为有多本)。

4.借阅/共享信息表

用户还需要关联一张查看自己借阅和共享书籍的信息表,以查看自己正在借阅和借阅过的书籍,正在共享和共享过的书籍。

二、E-R图

E-R图

三、表设计(mysql)

1.bs_info

借阅等级、可借阅最长时间和数量

CREATE TABLE `bsinfo`(
	`b_grade` INT PRIMARY KEY,
	`longest_time` INT,
	`maximum_count` INT
)ENGINE=INNODB DEFAULT CHARSET=utf8;

2.user

用户信息管理表

CREATE TABLE `user`(
	`username` VARCHAR(15) NOT NULL,
	`password` VARCHAR(20) NOT NULL,
	`phone_num` INT(13) NOT NULL,
	`email` VARCHAR(20),
	`address` VARCHAR(30),
	`authority` INT(1) DEFAULT 0,
	`user_id` INT PRIMARY KEY AUTO_INCREMENT,
	`b_grade` INT DEFAULT 0,
	`totally_borrowed` INT DEFAULT 0,
	FOREIGN KEY(`b_grade`) REFERENCES bs_info(`b_grade`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

3.publisher

出版社信息

CREATE TABLE `publisher`(
	`press_name` VARCHAR(20) PRIMARY KEY,
	`press_address` VARCHAR(25),
	`press_phone` VARCHAR(11)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

4.books_info

图书信息管理表

CREATE TABLE `books_info`(
	`book_id` CHAR(15) PRIMARY KEY,
	`book_author` VARCHAR(15),
	`book_name` VARCHAR(15),
	`press_name` VARCHAR(20),
	`press_date` DATE,
	`book_status` VARCHAR(6) CHECK(`book_status` IN(`可借`,`借出`,`不可借`)),
	`book_counts` INT DEFAULT 0,
	`book_borrowed_amount` INT DEFAULT 0,
	FOREIGN KEY(`press_name`) REFERENCES publisher(`press_name`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

5.borrowed_info

借出标识信息表

CREATE TABLE `books_info`(
	`book_id` CHAR(15) PRIMARY KEY,
	`book_author` VARCHAR(15),
	`book_name` VARCHAR(15),
	`press_name` VARCHAR(20),
	`press_date` DATE,
	`book_status` VARCHAR(6) CHECK(`book_status` IN(`可借`,`借出`,`不可借`)),
	`book_counts` INT DEFAULT 0,
	`book_borrowed_amount` INT DEFAULT 0,
	FOREIGN KEY(`press_name`) REFERENCES publisher(`press_name`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

6.shared_info

共享表示信息表

CREATE TABLE `shared_info`(
	`shared_id` CHAR(6) PRIMARY KEY,
	`shared_time` DATE,
	`shared_back` DATE,
	`book_id` CHAR(15),
	`user_id` INT,
	FOREIGN KEY(`book_id`) REFERENCES books_info(`book_id`),
	FOREIGN KEY(`user_id`) REFERENCES users(`user_id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

7.comment_info

评论管理表

CREATE TABLE `comment_info`(
	`c_id` INT AUTO_INCREMENT PRIMARY KEY,
	`c_content` VARCHAR(200),
	`c_time` DATE,
	`user_id` INT,
	`book_id` CHAR(15),
	FOREIGN KEY(`user_id`) REFERENCES users(`user_id`),
	FOREIGN KEY(`book_id`) REFERENCES books_info(`book_id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

8.theme_info

图书主题管理表

CREATE TABLE `comment_info`(
	`c_id` INT AUTO_INCREMENT PRIMARY KEY,
	`c_content` VARCHAR(200),
	`c_time` DATE,
	`user_id` INT,
	`book_id` CHAR(15),
	FOREIGN KEY(`user_id`) REFERENCES users(`user_id`),
	FOREIGN KEY(`book_id`) REFERENCES books_info(`book_id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

参考

https://blog.csdn.net/lingchen336/article/details/104109265
https://www.cnblogs.com/lesroad/p/9072915.html

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值