图书馆借阅与归还er图
时间: 2024-12-29 22:24:07 浏览: 10
### 图书馆借阅与归还系统ER图设计
#### 实体关系概述
实体关系图(Entity Relationship Diagram, ERD)用于描述图书馆借阅与归还系统中各个实体及其相互间的关系。此系统主要涉及四个核心实体:读者、书籍、管理员和借阅记录。
#### 主要实体定义
##### 1. 读者 (Reader)
该实体表示图书馆注册的成员,具有如下属性:
- `reader_id` (主键)
- `name`
- `address`
- `phone_number`
```sql
CREATE TABLE Reader (
reader_id INT PRIMARY KEY,
name VARCHAR(255),
address TEXT,
phone_number VARCHAR(20)
);
```
##### 2. 书籍 (Book)
代表图书馆收藏的各种出版物,包含以下字段:
- `book_id` (主键)
- `title`
- `author`
- `isbn`
- `publisher`
- `publish_date`
```sql
CREATE TABLE Book (
book_id INT PRIMARY KEY,
title VARCHAR(255),
author VARCHAR(255),
isbn CHAR(13),
publisher VARCHAR(255),
publish_date DATE
);
```
##### 3. 管理员 (Librarian)
负责管理和操作系统的工作人员,其特征包括:
- `librarian_id` (主键)
- `username`
- `password_hashed`
```sql
CREATE TABLE Librarian (
librarian_id INT PRIMARY KEY,
username VARCHAR(255),
password_hashed VARCHAR(255)
);
```
##### 4. 借阅记录 (Loan_Record)
记录每次借阅活动的信息,关联着读者和书籍两个实体:
- `loan_record_id` (主键)
- `borrow_date`
- `due_date`
- `return_date` (可为空)
```sql
CREATE TABLE Loan_Record (
loan_record_id INT PRIMARY KEY,
borrow_date DATE NOT NULL,
due_date DATE NOT NULL,
return_date DATE DEFAULT NULL,
FOREIGN KEY (reader_id) REFERENCES Reader(reader_id),
FOREIGN KEY (book_id) REFERENCES Book(book_id)
);
```
#### 关系建立
- **多对多**:一名读者可以借阅多本书籍;一本书也可以被多名读者借阅。这种情况下,在两者之间创建了一个连接表即`Loan_Record`来存储具体的借阅事件。
- **一对多**:一位管理员可以处理多个借阅请求,而每条借阅记录仅由一位管理员处理。因此,在`Loan_Record`表中增加一个外键指向`Librarian.librarian_id`[^1]。
```sql
ALTER TABLE Loan_Record ADD COLUMN librarian_id INT;
ALTER TABLE Loan_Record ADD CONSTRAINT fk_librarian
FOREIGN KEY(librarian_id) REFERENCES Librarian(librarian_id);
```
---
阅读全文