mysql数据库设计案例
时间: 2023-08-16 11:31:27 浏览: 71
好的,下面是一个简单的 MySQL 数据库设计案例:
假设我们要设计一个在线书店的数据库,我们可以创建以下几个表:
1. book 表:存储图书的信息,包括书名、作者、出版社、ISBN 码、价格等。
```
CREATE TABLE book (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(50) NOT NULL,
publisher VARCHAR(50) NOT NULL,
isbn CHAR(13) NOT NULL,
price DECIMAL(8,2) NOT NULL
);
```
2. category 表:存储图书的分类信息,如小说、历史、科技等。
```
CREATE TABLE category (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
```
3. book_category 表:存储图书和分类的关系,一个图书可以属于多个分类,一个分类也可以包含多个图书。
```
CREATE TABLE book_category (
book_id INT UNSIGNED NOT NULL,
category_id INT UNSIGNED NOT NULL,
PRIMARY KEY (book_id, category_id),
FOREIGN KEY (book_id) REFERENCES book (id),
FOREIGN KEY (category_id) REFERENCES category (id)
);
```
4. order 表:存储订单的信息,包括订单号、购买者信息、购买时间等。
```
CREATE TABLE order (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
order_no CHAR(20) NOT NULL,
customer_name VARCHAR(50) NOT NULL,
customer_email VARCHAR(50) NOT NULL,
order_time DATETIME NOT NULL
);
```
5. order_item 表:存储订单中每个商品的信息,包括图书信息、购买数量、单价等。
```
CREATE TABLE order_item (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
order_id INT UNSIGNED NOT NULL,
book_id INT UNSIGNED NOT NULL,
quantity INT UNSIGNED NOT NULL,
price DECIMAL(8,2) NOT NULL,
FOREIGN KEY (order_id) REFERENCES order (id),
FOREIGN KEY (book_id) REFERENCES book (id)
);
```
这样,我们就设计好了一个简单的在线书店的数据库。