目录
一、数据库表结构设计
readers表(见表1)
|
|
|
|
|
|
reader_id |
INT |
PRIMARY KEY, AUTO_INCREMENT |
读者唯一标识符,自增主键 |
|
reader_name |
VARCHAR(30) |
NOT NULL |
读者姓名,不能为空 |
|
reader_number |
VARCHAR(30) |
UNIQUE |
读者身份证号码(或学号),唯一值 |
|
reader_phone |
VARCHAR(30) |
UNIQUE, NOT NULL |
读者手机号码,唯一且不能为空 |
|
reader_password |
VARCHAR(30) |
NOT NULL |
读者登录密码,不能为空 |
|
remain_borrow |
TINYINT |
DEFAULT 5 |
剩余可借书数量,默认为5 |
|
is_delete |
TINYINT |
DEFAULT 0 |
逻辑删除标识符,默认为0,表示未删除 |
表1 readers表
admin表(见表2)
|
|
|
|
|
|
admin_id |
INT |
PRIMARY KEY, AUTO_INCREMENT |
管理员唯一标识符,自增主键 |
|
usr_name |
VARCHAR(30) |
UNIQUE, NOT NULL |
管理员用户名,唯一且不能为空 |
|
admin_password |
VARCHAR(30) |
NOT NULL |
加密后的密码,不能为空 |
|
role |
VARCHAR(30) |
NOT NULL |
管理员职责,不能为空 |
|
is_delete |
TINYINT |
DEFAULT 0 |
逻辑删除标识符,默认为0,表示未删除 |
表2 admin表
books
表(见表3)
|
|
|
|
|
|
book_id |
INT |
PRIMARY KEY, AUTO_INCREMENT |
图书唯一标识符,自增主键 |
|
book_title |
VARCHAR(50) |
NOT NULL |
图书书名,不能为空 |
|
author |
VARCHAR(50) |
NOT NULL |
图书作者,不能为空 |
|
ISBN |
VARCHAR(50) |
UNIQUE, NOT NULL |
国际标准书号,唯一且不能为空 |
|
publisher |
VARCHAR(50) |
NOT NULL |
出版社名称,不能为空 |
|
publication_date |
DATE |
NOT NULL |
出版日期,不能为空,通常格式为 ‘YYYY-MM-DD’ |
|
description |
TEXT |
|
图书的简要描述或内容摘要 |
|
category_id |
VARCHER(30) |
FOREIGN KEY REFERENCES categories(category_id) |
中图法分类号,并与categories表的category_id字段建立外键关联 |
|
call_number |
VARCHAR(30) |
|
书次号,在相同分类号下对不同图书的排序 |
|
quantity |
INT |
DEFAULT 1 |
数量,默认为1 |
|
book_status |
ENUM(‘available’, ‘borrowed’, ‘reserved’, ‘lost’) |
|
图书状态,枚举类型,可选值包括’可用’、’已借出’、’已预约’、’丢失’ |
|
is_delete |
TINYINT |
DEFAULT 0 |
逻辑删除标识符,默认为0,表示未删除 |
|
create_by |
INT |
NOT NULL, FOREIGN KEY REFERENCES admin(admin_id) |
记录创建者,不能为空,并与admin表的admin _id字段建立外键关联 |
|
create_date |
DATETIME |
NOT NULL, DEFAULT NOW() |
记录创建时间,默认值为now() |
|
modify_by |
INT |
FOREIGN KEY REFERENCES admin(admin_id) |
记录最近一次更新者,与admin表的admin _id字段建立外键关联 |
|
modify_date |
DATETIME |
|
记录最近一次更新的时间 |
|
version |
INT |
|
用于实现乐观锁 |
表3 books表
borrow表(见表4)
|
|
|
|
|
|
borrow_id |
INT |
PRIMARY KEY, AUTO_INCREMENT |
借阅记录唯一标识符,自增主键 |
|
book_id |
INT |
NOT NULL, FOREIGN KEY REFERENCES books(book_id) |
图书ID,不能为空,并与books表的book_id字段建立外键关联 |
|
reader_id |
INT |
NOT NULL, FOREIGN KEY REFERENCES readers(reader_id) |
读者ID,不能为空,并与readers表的reader_id字段建立外键关联 |
|
borrow_date |
DATETIME |
NOT NULL |
借阅日期,不能为空 |
|
due_return_date |
DATETIME |
NOT NULL |
应还日期,不能为空 |
|
actual_return_date |
DATETIME |
|
实际还书日期 |
|
borrow_status |
ENUM(‘borrowed’, ‘returned’, ‘overdue’) |
NOT NULL |
借阅状态,枚举类型,可选值包括’已借出’、’已归还’、’逾期’ |
|
is_delete |
TINYINT |
DEFAULT 0 |
逻辑删除标识符,默认为0,表示未删除 |
|
create_by |
INT |
NOT NULL, FOREIGN KEY REFERENCES readers(reader_id) |
记录创建者,不能为空,并与read表的reader _id字段建立外键关联 |
|
create_date |
DATETIME |
NOT NULL, DEFAULT NOW() |
记录创建时间,默认值为now() |
|
modify_by |
INT |
FOREIGN KEY REFERENCES reader(reader_id) |
记录最近一次更新者,与reader表的reader _id字段建立外键关联 |
|
modify_date |
DATETIME |
|
记录最近一次更新的时间 |
|
version |
INT |
|
用于实现乐观锁 |
表4 borrow表
reading_room表(见表5)
|
|
|
|
|
|
reading_room_id |
INT |
PRIMARY KEY, AUTO_INCREMENT |
阅览室唯一标识符,自增主键 |
|
room_name |
VARCHAR(30) |
NOT NULL |
阅览室名称,不能为空 |
|
location |
VARCHAR(50) |
NOT NULL |
|
|
capacity |
INT |
|
阅览室容纳人数 |
|
is_delete |
TINYINT |
DEFAULT 0 |
逻辑删除标识符,默认为0,表示未删除 |
表5 reading_room表
categories表(见表6)
|
|
|
|
|
|
category_id |
VARCHAR(50) |
PRIMARY KEY, AUTO_INCREMENT |
图书类别唯一标识符,自增主键 |
|
category_name |
VARCHAR(50) |
NOT NULL |
图书类别名称,不能为空 |
|
reading_room_id |
INT |
FOREIGN KEY REFERENCES reading_rooms(reading_room_id) |
阅览室编号,外键关联到reading_room表 |
|
is_delete |
TINYINT |
DEFAULT 0 |
逻辑删除标识符,默认为0,表示未删除 |
表6 categories表
二、ER图
