图书管理系统数据库设计:创建表结构及外键约束

本文将详细介绍图书管理系统数据库的设计过程,包括创建各个表以及添加外键约束。

1. 创建表结构

1.1 图书类别表 (Book_Type)

CREATE TABLE Book_Type (
    btype_ID CHAR(2) NOT NULL PRIMARY KEY COMMENT '图书类别编号',
    btype_Name VARCHAR(20) NOT NULL COMMENT '图书类别名称'
);

1.2 出版社表 (Publisher)

CREATE TABLE Publisher (
    Pub_ID CHAR(2) NOT NULL COMMENT '出版社编号',
    Pub_Name VARCHAR(30) NOT NULL COMMENT '出版社名称',
    Pub_Address VARCHAR(60) NOT NULL COMMENT '出版社地址',
    Pub_PostCode CHAR(6) NOT NULL COMMENT '邮政编码',
    Pub_Person CHAR(8) NOT NULL COMMENT '联系人',
    Pub_Tel CHAR(13) NOT NULL COMMENT '联系电话',
    PRIMARY KEY (Pub_ID)
);

1.3 图书表 (Books)

CREATE TABLE Books (
    b_ID CHAR(8) NOT NULL COMMENT '图书编号',
    b_Name VARCHAR(60) NOT NULL COMMENT '图书名称',
    Btype_ID CHAR(2) NOT NULL COMMENT '图书类别编号',
    b_Author VARCHAR(16) NOT NULL COMMENT '作者',
    b_ISBN CHAR(17) NOT NULL COMMENT 'ISBN',
    Pub_ID CHAR(2) NOT NULL COMMENT '出版社编号',
    b_Quantity SMALLINT NOT NULL COMMENT '图书数量',
    b_PubTime DATE NOT NULL COMMENT '出版时间',
    b_Detail VARCHAR(100) NULL COMMENT '图书简介',
    b_Picture BLOB NULL COMMENT '封面图片',
    PRIMARY KEY (b_ID),
    KEY Btype_ID (Btype_ID),
    KEY Pub_ID (Pub_ID),
    CONSTRAINT books_ibfk_1 FOREIGN KEY (Btype_ID) REFERENCES book_type (Btype_ID),
    CONSTRAINT books_ibfk_2 FOREIGN KEY (Pub_ID) REFERENCES publisher (Pub_ID),
    CONSTRAINT books_chk_1 CHECK ((b_Quantity >= 0))
);

1.4 读者类别表 (ReaderType)

CREATE TABLE ReaderType (
    Rt_ID CHAR(2) NOT NULL COMMENT '读者类别编号',
    Rt_Name VARCHAR(8) NOT NULL UNIQUE COMMENT '读者类别名称',
    Rt_Num SMALLINT NOT NULL DEFAULT 3 COMMENT '限借数量',
    Rt_time SMALLINT NOT NULL COMMENT '限借天数',
    Rt_Fine DECIMAL(3,1) NOT NULL COMMENT '超期日罚金',
    PRIMARY KEY (Rt_ID)
);

1.5 读者表 (Reader)

CREATE TABLE Reader (
    R_ID CHAR(10) NOT NULL COMMENT '读者编号',
    R_Name CHAR(8) NOT NULL COMMENT '读者姓名',
    Rt_ID CHAR(2) NOT NULL COMMENT '读者类别编号',
    PRIMARY KEY (R_ID)
);

1.6 借阅信息表 (BorrowReturn)

CREATE TABLE BorrowReturn (
    Br_ID CHAR(6) NOT NULL COMMENT '借阅编号',
    R_ID CHAR(10) NOT NULL COMMENT '读者编号',
    Bor_Date DATETIME COMMENT '借书日期',
    Ret_Date DATETIME COMMENT '还书日期',
    CONSTRAINT Dateeime1 CHECK (Bor_Date < Ret_date),
    PRIMARY KEY (Br_ID)
);

2. 添加外键约束

2.1 删除已有外键约束

首先,我们需要删除读者信息表(Reader)和读者类别表(ReaderType)之间已有的外键约束。

ALTER TABLE Reader DROP CONSTRAINT R_ID1;
ALTER TABLE ReaderType DROP PRIMARY KEY;

2.2 添加新的外键约束

现在,我们可以为读者信息表(Reader)添加新的外键约束,引用读者类别表(ReaderType)的 Rt_ID 列作为外键。

ALTER TABLE Reader ADD CONSTRAINT R_ID1 FOREIGN KEY (Rt_ID) REFERENCES ReaderType (Rt_ID);

执行以上 SQL 语句后,即可为读者信息表(Reader)添加外键约束。

3. 注意事项

  • 在执行添加外键约束操作之前,请确保数据库中的数据满足外键约束的要求,即读者信息表(Reader)的 Rt_ID 列中的值都存在于读者类别表(ReaderType)的 Rt_ID 列中。
  • 在执行任何操作之前,请务必备份数据库,以免意外操作导致数据丢失。

通过以上步骤,我们完成了图书管理系统数据库的设计,并成功添加了外键约束,保证了数据完整性和一致性。

图书管理系统数据库设计:创建表结构及外键约束

原文地址: https://www.cveoy.top/t/topic/S1c 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录