图书管理系统数据库设计

目录

一、数据库表结构设计

readers表(见表1)

admin表(见表2)

books表(见表3)

borrow表(见表4)

reading_room表(见表5)

categories表(见表6)

二、ER图

三、用例图


一、数据库表结构设计

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图


三、用例图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值