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