用mysql 写一个图书管理的数据库
时间: 2024-03-26 19:39:49 浏览: 247
好的,下面是一个简单的图书管理的数据库设计:
**1. 书籍表(book)**
| 字段名 | 数据类型 | 主键/外键 | 描述 |
| --------- | ------------ | --------- | ---------- |
| id | int | 主键 | 书籍ID |
| name | varchar(50) | | 书籍名称 |
| author | varchar(50) | | 作者 |
| publisher | varchar(50) | | 出版社 |
| price | decimal(8,2) | | 价格 |
| count | int | | 数量 |
| create_at | datetime | | 创建时间 |
| update_at | datetime | | 最后更新时间 |
**2. 借阅记录表(borrow)**
| 字段名 | 数据类型 | 主键/外键 | 描述 |
| --------- | ----------- | --------- | ---------- |
| id | int | 主键 | 借阅记录ID |
| book_id | int | 外键 | 书籍ID |
| user_name | varchar(50) | | 借阅人姓名 |
| borrow_at | datetime | | 借阅时间 |
| return_at | datetime | | 归还时间 |
在上面的表结构中,书籍表(book)用于存储所有书籍的信息,包括书籍ID、书籍名称、作者、出版社、价格、数量等;借阅记录表(borrow)用于存储所有借阅记录,包括借阅记录ID、书籍ID、借阅人姓名、借阅时间、归还时间等。
你可以使用以下的 SQL 语句来创建这两个表:
```
CREATE TABLE `book` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`author` varchar(50) NOT NULL,
`publisher` varchar(50) NOT NULL,
`price` decimal(8,2) NOT NULL,
`count` int(11) NOT NULL,
`create_at` datetime NOT NULL,
`update_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `borrow` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`book_id` int(11) NOT NULL,
`user_name` varchar(50) NOT NULL,
`borrow_at` datetime NOT NULL,
`return_at` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `book_id` (`book_id`),
CONSTRAINT `borrow_ibfk_1` FOREIGN KEY (`book_id`) REFERENCES `book` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
在上面的 SQL 语句中,我们定义了两个表(book 和 borrow),并且在 borrow 表中定义了 book_id 的外键,以保证借阅记录表中的书籍ID必须存在于书籍表中。
阅读全文