76 lines
2.6 KiB
Markdown
76 lines
2.6 KiB
Markdown
# 数据库初始化说明
|
||
|
||
本目录包含 `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 原子操作 + 数据库兜底双重保障,详见功能设计文档。
|