Python设计图书馆管理系统技术文档
Python设计图书馆管理系统技术文档(二)
4. 数据库设计
- 下面是数据库中四个表的生成命令。
create table User
(
StudentId CHAR(10) not null
unique,
Name VARCHAR(20) not null,
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) 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 (StudentId, Name, Password, IsAdmin, TimesBorrowed, NumBorrowed) VALUES ('admin', 'admin', '21232f297a57a5a743894a0e4a801fc3', 1, 0, 0);
INSERT INTO User (StudentId, Name, Password, IsAdmin, TimesBorrowed, NumBorrowed) VALUES ('001', '拾叶', '93dd4de5cddba2c733c65f233097f05a', 0, 0, 0);
4.1 E-R图
-
User(用户)表E-R图
-
Book(图书)表E-R图
-
User_Book(借阅情况)表E-R图
-
BuyOrDrop(购买/淘汰)表E-R图
4.2 数据结构
- 数据库采用的是Sqlite3数据库建立,系统主要需要维护4个数据表:
4.2.1 用户信息表(User)
字段名 | 类型 | 宽度 | 是否为空 | 默认值 | 说明 |
---|---|---|---|---|---|
StudentId | CHAR | 10 | 否 | 用户ID | |
Name | VARCHAR | 20 | 否 | 用户名 | |
Password | CHAR | 32 | 否 | 密码 | |
IsAdmin | BIT | 是 | 0 | 是否管理员 | |
TimesBorrowed | INT | 是 | 0 | 借阅时间 | |
NumBorrowed | INT | 是 | 0 | 借阅数量 |
4.2.2 图书信息表(Book)
字段名 | 类型 | 宽度 | 是否为空 | 默认值 | 说明 |
---|---|---|---|---|---|
BookName | VARCHAR | 30 | 否 | 图书名 | |
BookId | CHAR | 6 | 否 | 图书ID | |
Auth | VARCHAR | 20 | 否 | 作者 | |
Category | VARCHAR | 10 | 是 | Null | 用户名 |
Publisher | VARCHAR | 30 | 是 | Null | 出版社 |
PublishTime | DATE | 是 | 出版时间 | ||
NumStorage | INT | 是 | 0 | 库存数量 | |
NumCanBorrow | INT | 是 | 0 | 可借阅量 | |
NumBorrowed | INT | 是 | 0 | 借阅数量 |
4.2.3 用户借书信息表(User_Book)
字段名 | 类型 | 宽度 | 是否为空 | 默认值 | 说明 |
---|---|---|---|---|---|
StudentId | CHAR | 10 | 否 | 用户ID | |
BookId | CHAR | 6 | 否 | 图书ID | |
BorrowTime | DATE | 是 | 借阅时间 | ||
ReturnTime | DATE | 是 | 归还时间 | ||
BorrowState | BIT | 是 | 0 | 借阅状态 |
4.2.4 管理图书信息表(BuyOrDrop)
字段名 | 类型 | 宽度 | 是否为空 | 默认值 | 说明 |
---|---|---|---|---|---|
BookId | CHAR | 6 | 否 | 图书户ID | |
Time | DATE | 是 | 出版时间 | ||
BuyOrDrop | BIT | 是 | 0 | 添加删除 | |
Number | INT | 是 | 0 | 数量 |