0%

PyQt5搭建图书馆管理系统(1)——数据库

PS:由于CSDN太多广告所以弃用了,搬运到了自己的博客

写在前面#

这学期的数据库大作业要求是做一个简单的图书馆管理系统,刚好之前看过Qt,就打算用Qt来写了,博客记录一些重要的模块和思路

要求#

编写一个图书管理系统,要求具有以下内容:

  • 存储图书信息、采购和淘汰情况、租借情况
  • 实现图书采购、淘汰、租借功能。
  • 实现图书信息、采购和淘汰、库存、和租借情况查询
  • 实现图书的采购、库存、淘汰、租借情况等统计

这是要实现的基本功能,当然我觉得做好的话还可以加上读者推荐书目,我喜欢,收藏书目之类的功能

大致思路#

作为一个管理系统,自然要实现管理员和学生两个方面的内容

  • 首先需要登录和注册页面
  • 对于管理员,在管理员的管理页面上,会实现图书的采购,淘汰,库存,租借情况查询及统计
  • 对于学生,要实现图书的借阅、归还、租借情况查询

数据库#

使用Sqlite3轻量级数据库作为系统的数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
CREATE TABLE User (
StudentId CHAR(10) UNIQUE NOT NULL,
Name VARCHAR(20),
Password CHAR(32) NOT NULL,
IsAdmin BIT DEFAULT 0,
TimesBorrowed INT DEFAULT 0,
NumBorrowed INT DEFAULT 0
);

CREATE TABLE Book (
BookName VARCHAR(30) NOT NULL,
BookId CHAR(6) NOT NULL,
Auth VARCHAR(20) NOT NULL,
Category VARCHAR(10) DEFAULT NULL,
Publisher VARCHAR(30) DEFAULT NULL,
PublishTime DATE,
NumStorage INT DEFAULT 0,
NumCanBorrow INT DEFAULT 0,
NumBorrowed INT DEFAULT 0
);

CREATE TABLE User_Book (
StudentId CHAR(10) UNIQUE NOT NULL,
BookId CHAR(6) NOT NULL,
BorrowTime DATE,
ReturnTime DATE,
BorrowState BIT DEFAULT 0
);

CREATE TABLE BuyOrDrop (
BookId CHAR(6) NOT NULL,
Time DATE,
BuyOrDrop BIT DEFAULT 0,
Number INT DEFAULT 0
);

INSERT INTO User VALUES ('0000000000', '管理员', 'f9687b82c237c8868a92ffa548c0a16a', 1, 0, 0);

所有管理员使用同一账户 ,password使用md5加密

User表#

  • StudentId:学号
  • Name:姓名
  • Password:密码
  • IsAdmin:是否为管理员
  • TimesBorrowed:借阅次数
  • NumBorrowed:已借书数量
    Alt text

Book表#

  • BookName:书名
  • BookId:书号
  • Auth:作者
  • CateGory:分类
  • Publisher:出版社
  • PublishTime:出版时间
  • NumStorage:库存量
  • NumCanBorrowed:可借量
  • NumBorrowed:被借阅次数

Alt text

User_Book表#

分别为学号,书号,借阅时间,归还时间,借阅状态

Alt text

BuyOrDrop表#

分别为书号,添加或淘汰时间,添加还是淘汰,数量
Alt text

最后附上链接#

项目地址:github仓库链接

坚持原创技术分享,您的支持将鼓励我继续创作!