snack-mall/db/README.md

76 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 数据库初始化说明
本目录包含 `snack_mall` 数据库的完整脚本。
## 文件清单
| 文件 | 用途 | 建议时机 |
|------|------|----------|
| `schema.sql` | 建库 + 21 张业务表的 DDL | 第一次部署时执行 |
| `seed.sql` | 基础测试数据(管理员、用户、商品、优惠券、活动、客服消息等) | 联调 / 演示前执行 |
| `BUSINESS_DESIGN.md` | 核心业务设计WebSocket 客服 + Redis 防超卖 | 开发前必读 |
## 执行顺序
```bash
# 方式一:命令行
mysql -u root -p < schema.sql
mysql -u root -p < seed.sql
# 方式二:登录后 source
mysql -u root -p
> source /path/to/schema.sql
> source /path/to/seed.sql
# 方式三Navicat / DBeaver 直接打开执行
```
## 表清单(共 21 张)
| # | 表名 | 说明 |
|----|-------------------|------------------|
| 1 | `user` | 用户表 |
| 2 | `admin` | 管理员表 |
| 3 | `category` | 商品分类(多级) |
| 4 | `product` | 商品 SPU |
| 5 | `product_sku` | 商品 SKU |
| 6 | `address` | 收货地址 |
| 7 | `cart` | 购物车 |
| 8 | `orders` | 订单主表 |
| 9 | `order_item` | 订单明细 |
| 10 | `favorite` | 收藏 |
| 11 | `banner` | 轮播图 |
| 12 | `chat_session` | 客服会话 |
| 13 | `chat_message` | 客服消息 |
| 14 | `quick_reply` | 客服快捷回复 |
| 15 | `notice` | 系统公告 |
| 16 | `coupon` | 优惠券模板 |
| 17 | `user_coupon` | 用户优惠券 |
| 18 | `seckill_activity`| 限时抢购活动 |
| 19 | `seckill_product` | 抢购活动商品 |
| 20 | `seckill_order` | 抢购订单(防超卖)|
| 21 | `upload_file` | 文件上传记录 |
## 默认账号
| 角色 | 用户名 | 密码 |
|------|--------|------|
| 管理员 | `admin` | `123456` |
| 管理员 | `manager` | `123456` |
| 管理员 | `operator` | `123456` |
| 普通用户 | `user001` ~ `user005` | `123456` |
> 密码均使用 BCrypt 加密hash 值在 seed.sql 中。
## 字符集
- 库 / 表utf8mb4
- 排序规则utf8mb4_unicode_ci
- 存储 emoji 等四字节字符无压力
## 注意事项
1. **不要在生产环境执行 `seed.sql`** —— 仅用于本地开发与演示。
2. 真实部署时建议**关闭 `notice` 等富文本字段的 XSS 过滤**,由前端做 HTML 转义。
3. 抢购库存的并发安全由 Redis 原子操作 + 数据库兜底双重保障,详见功能设计文档。