560 lines
24 KiB
Markdown
560 lines
24 KiB
Markdown
# 旅游宣传管理系统 - 数据库设计文档
|
||
|
||
## 一、数据库规划
|
||
|
||
- 数据库名称:`tourism_platform`
|
||
- 字符集:`utf8mb4`
|
||
- 排序规则:`utf8mb4_unicode_ci`
|
||
|
||
---
|
||
|
||
## 二、表结构设计
|
||
|
||
### 2.1 用户相关表
|
||
|
||
#### 2.1.1 用户表 (user)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| username | VARCHAR(50) | UNIQUE, NOT NULL | 用户名 |
|
||
| password | VARCHAR(255) | NOT NULL | 密码(加密存储) |
|
||
| phone | VARCHAR(20) | UNIQUE | 手机号 |
|
||
| email | VARCHAR(100) | UNIQUE | 邮箱 |
|
||
| avatar | VARCHAR(500) | | 头像URL |
|
||
| nickname | VARCHAR(50) | | 昵称 |
|
||
| gender | TINYINT | DEFAULT 0 | 性别:0-未知,1-男,2-女 |
|
||
| birthday | DATE | | 生日 |
|
||
| signature | VARCHAR(255) | | 个人签名 |
|
||
| status | TINYINT | DEFAULT 1 | 状态:0-禁用,1-正常 |
|
||
| last_login_time | DATETIME | | 最后登录时间 |
|
||
| last_login_ip | VARCHAR(50) | | 最后登录IP |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
| is_deleted | TINYINT | DEFAULT 0 | 逻辑删除:0-未删除,1-已删除 |
|
||
|
||
#### 2.1.2 收货地址表 (address)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| user_id | BIGINT | NOT NULL, INDEX | 用户ID |
|
||
| consignee | VARCHAR(50) | NOT NULL | 收货人姓名 |
|
||
| phone | VARCHAR(20) | NOT NULL | 联系电话 |
|
||
| province | VARCHAR(50) | NOT NULL | 省份 |
|
||
| city | VARCHAR(50) | NOT NULL | 城市 |
|
||
| district | VARCHAR(50) | NOT NULL | 区县 |
|
||
| detail_address | VARCHAR(255) | NOT NULL | 详细地址 |
|
||
| postal_code | VARCHAR(20) | | 邮政编码 |
|
||
| is_default | TINYINT | DEFAULT 0 | 是否默认:0-否,1-是 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
| is_deleted | TINYINT | DEFAULT 0 | 逻辑删除 |
|
||
|
||
#### 2.1.3 收藏表 (favorite)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| user_id | BIGINT | NOT NULL, INDEX | 用户ID |
|
||
| favorite_type | TINYINT | NOT NULL | 类型:1-景点,2-商品,3-游记 |
|
||
| favorite_id | BIGINT | NOT NULL | 收藏对象ID |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
|
||
---
|
||
|
||
### 2.2 管理员相关表
|
||
|
||
#### 2.2.1 管理员表 (admin)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| username | VARCHAR(50) | UNIQUE, NOT NULL | 用户名 |
|
||
| password | VARCHAR(255) | NOT NULL | 密码 |
|
||
| name | VARCHAR(50) | | 姓名 |
|
||
| phone | VARCHAR(20) | | 手机号 |
|
||
| email | VARCHAR(100) | | 邮箱 |
|
||
| avatar | VARCHAR(500) | | 头像 |
|
||
| status | TINYINT | DEFAULT 1 | 状态:0-禁用,1-正常 |
|
||
| last_login_time | DATETIME | | 最后登录时间 |
|
||
| last_login_ip | VARCHAR(50) | | 最后登录IP |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
| is_deleted | TINYINT | DEFAULT 0 | 逻辑删除 |
|
||
|
||
#### 2.2.2 角色表 (role)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| name | VARCHAR(50) | UNIQUE, NOT NULL | 角色名称 |
|
||
| code | VARCHAR(50) | UNIQUE, NOT NULL | 角色代码 |
|
||
| description | VARCHAR(255) | | 角色描述 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
|
||
#### 2.2.3 管理员角色关联表 (admin_role)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| admin_id | BIGINT | NOT NULL, INDEX | 管理员ID |
|
||
| role_id | BIGINT | NOT NULL, INDEX | 角色ID |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
|
||
#### 2.2.4 权限表 (permission)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| name | VARCHAR(100) | NOT NULL | 权限名称 |
|
||
| code | VARCHAR(100) | UNIQUE, NOT NULL | 权限代码 |
|
||
| type | TINYINT | NOT NULL | 类型:1-菜单,2-按钮 |
|
||
| parent_id | BIGINT | DEFAULT 0 | 父级ID |
|
||
| path | VARCHAR(255) | | 路由路径 |
|
||
| icon | VARCHAR(100) | | 图标 |
|
||
| sort | INT | DEFAULT 0 | 排序 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
|
||
#### 2.2.5 角色权限关联表 (role_permission)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| role_id | BIGINT | NOT NULL, INDEX | 角色ID |
|
||
| permission_id | BIGINT | NOT NULL, INDEX | 权限ID |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
|
||
#### 2.2.6 操作日志表 (operation_log)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| admin_id | BIGINT | | 管理员ID |
|
||
| admin_name | VARCHAR(50) | | 管理员名称 |
|
||
| operation | VARCHAR(255) | | 操作描述 |
|
||
| method | VARCHAR(255) | | 请求方法 |
|
||
| params | TEXT | | 请求参数 |
|
||
| ip | VARCHAR(50) | | IP地址 |
|
||
| result | TEXT | | 返回结果 |
|
||
| status | TINYINT | | 状态:0-失败,1-成功 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 操作时间 |
|
||
|
||
---
|
||
|
||
### 2.3 景点相关表
|
||
|
||
#### 2.3.1 景点分类表 (attraction_category)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| name | VARCHAR(50) | NOT NULL | 分类名称 |
|
||
| parent_id | BIGINT | DEFAULT 0 | 父级ID |
|
||
| level | TINYINT | DEFAULT 1 | 层级 |
|
||
| sort | INT | DEFAULT 0 | 排序 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
|
||
#### 2.3.2 景点表 (attraction)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| name | VARCHAR(100) | NOT NULL | 景点名称 |
|
||
| category_id | BIGINT | INDEX | 分类ID |
|
||
| city | VARCHAR(50) | NOT NULL | 所在城市 |
|
||
| address | VARCHAR(255) | NOT NULL | 详细地址 |
|
||
| latitude | DECIMAL(10,6) | | 纬度 |
|
||
| longitude | DECIMAL(10,6) | | 经度 |
|
||
| cover_image | VARCHAR(500) | | 封面图片 |
|
||
| images | TEXT | | 图片列表(JSON数组) |
|
||
| video_url | VARCHAR(500) | | 宣传视频 |
|
||
| description | TEXT | | 景点介绍 |
|
||
| open_time | VARCHAR(100) | | 开放时间 |
|
||
| play_time | VARCHAR(100) | | 建议游玩时长 |
|
||
| traffic_info | TEXT | | 交通信息 |
|
||
| tags | VARCHAR(255) | | 标签(逗号分隔) |
|
||
| is_hot | TINYINT | DEFAULT 0 | 是否热门:0-否,1-是 |
|
||
| is_recommend | TINYINT | DEFAULT 0 | 是否推荐:0-否,1-是 |
|
||
| status | TINYINT | DEFAULT 1 | 状态:0-下架,1-上架 |
|
||
| view_count | INT | DEFAULT 0 | 浏览次数 |
|
||
| favorite_count | INT | DEFAULT 0 | 收藏次数 |
|
||
| score | DECIMAL(3,2) | DEFAULT 5.00 | 评分 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
| is_deleted | TINYINT | DEFAULT 0 | 逻辑删除 |
|
||
|
||
#### 2.3.3 门票表 (ticket)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| attraction_id | BIGINT | NOT NULL, INDEX | 景点ID |
|
||
| name | VARCHAR(100) | NOT NULL | 票种名称 |
|
||
| type | TINYINT | NOT NULL | 类型:1-成人票,2-儿童票,3-老人票,4-学生票 |
|
||
| price | DECIMAL(10,2) | NOT NULL | 价格 |
|
||
| original_price | DECIMAL(10,2) | | 原价 |
|
||
| stock | INT | DEFAULT 0 | 库存 |
|
||
| daily_limit | INT | DEFAULT 0 | 每日限购 |
|
||
| valid_days | INT | DEFAULT 1 | 有效天数 |
|
||
| refundable | TINYINT | DEFAULT 1 | 是否可退:0-否,1-是 |
|
||
| description | VARCHAR(255) | | 说明 |
|
||
| sort | INT | DEFAULT 0 | 排序 |
|
||
| status | TINYINT | DEFAULT 1 | 状态:0-下架,1-上架 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
| is_deleted | TINYINT | DEFAULT 0 | 逻辑删除 |
|
||
|
||
#### 2.3.4 景点订单表 (attraction_order)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| order_no | VARCHAR(32) | UNIQUE, NOT NULL | 订单编号 |
|
||
| user_id | BIGINT | NOT NULL, INDEX | 用户ID |
|
||
| attraction_id | BIGINT | NOT NULL, INDEX | 景点ID |
|
||
| ticket_id | BIGINT | NOT NULL | 门票ID |
|
||
| attraction_name | VARCHAR(100) | | 景点名称 |
|
||
| ticket_name | VARCHAR(100) | | 票种名称 |
|
||
| quantity | INT | NOT NULL | 数量 |
|
||
| unit_price | DECIMAL(10,2) | NOT NULL | 单价 |
|
||
| total_price | DECIMAL(10,2) | NOT NULL | 总价 |
|
||
| visit_date | DATE | NOT NULL | 游玩日期 |
|
||
| visit_time | VARCHAR(50) | | 游玩时段 |
|
||
| contact_name | VARCHAR(50) | NOT NULL | 联系人姓名 |
|
||
| contact_phone | VARCHAR(20) | NOT NULL | 联系人电话 |
|
||
| status | TINYINT | DEFAULT 1 | 状态:1-待支付,2-已支付,3-已使用,4-已取消,5-退款中,6-已退款 |
|
||
| pay_time | DATETIME | | 支付时间 |
|
||
| use_time | DATETIME | | 使用时间 |
|
||
| cancel_time | DATETIME | | 取消时间 |
|
||
| cancel_reason | VARCHAR(255) | | 取消原因 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
|
||
---
|
||
|
||
### 2.4 商品相关表
|
||
|
||
#### 2.4.1 商品分类表 (product_category)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| name | VARCHAR(50) | NOT NULL | 分类名称 |
|
||
| parent_id | BIGINT | DEFAULT 0 | 父级ID |
|
||
| level | TINYINT | DEFAULT 1 | 层级 |
|
||
| icon | VARCHAR(255) | | 图标 |
|
||
| sort | INT | DEFAULT 0 | 排序 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
| is_deleted | TINYINT | DEFAULT 0 | 逻辑删除 |
|
||
|
||
#### 2.4.2 商品表 (product)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| name | VARCHAR(200) | NOT NULL | 商品名称 |
|
||
| category_id | BIGINT | INDEX | 分类ID |
|
||
| cover_image | VARCHAR(500) | | 封面图片 |
|
||
| images | TEXT | | 图片列表(JSON数组) |
|
||
| video_url | VARCHAR(500) | | 商品视频 |
|
||
| description | TEXT | | 商品描述 |
|
||
| detail | TEXT | | 商品详情(富文本) |
|
||
| tags | VARCHAR(255) | | 标签 |
|
||
| is_hot | TINYINT | DEFAULT 0 | 是否热销 |
|
||
| is_new | TINYINT | DEFAULT 0 | 是否新品 |
|
||
| is_recommend | TINYINT | DEFAULT 0 | 是否推荐 |
|
||
| status | TINYINT | DEFAULT 1 | 状态:0-下架,1-上架 |
|
||
| view_count | INT | DEFAULT 0 | 浏览次数 |
|
||
| sale_count | INT | DEFAULT 0 | 销量 |
|
||
| favorite_count | INT | DEFAULT 0 | 收藏次数 |
|
||
| score | DECIMAL(3,2) | DEFAULT 5.00 | 评分 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
| is_deleted | TINYINT | DEFAULT 0 | 逻辑删除 |
|
||
|
||
#### 2.4.3 商品规格表 (sku)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| product_id | BIGINT | NOT NULL, INDEX | 商品ID |
|
||
| name | VARCHAR(100) | NOT NULL | 规格名称(如:颜色、尺寸) |
|
||
| value | VARCHAR(255) | NOT NULL | 规格值(如:红色、L) |
|
||
| price | DECIMAL(10,2) | NOT NULL | 价格 |
|
||
| stock | INT | DEFAULT 0 | 库存 |
|
||
| image | VARCHAR(500) | | 规格图片 |
|
||
| sort | INT | DEFAULT 0 | 排序 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
| is_deleted | TINYINT | DEFAULT 0 | 逻辑删除 |
|
||
|
||
#### 2.4.4 购物车表 (cart)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| user_id | BIGINT | NOT NULL, INDEX | 用户ID |
|
||
| product_id | BIGINT | NOT NULL, INDEX | 商品ID |
|
||
| sku_id | BIGINT | | 规格ID |
|
||
| quantity | INT | NOT NULL | 数量 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
| is_deleted | TINYINT | DEFAULT 0 | 逻辑删除 |
|
||
|
||
#### 2.4.5 商品订单表 (product_order)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| order_no | VARCHAR(32) | UNIQUE, NOT NULL | 订单编号 |
|
||
| user_id | BIGINT | NOT NULL, INDEX | 用户ID |
|
||
| total_quantity | INT | NOT NULL | 商品总数量 |
|
||
| total_price | DECIMAL(10,2) | NOT NULL | 订单总金额 |
|
||
| discount_amount | DECIMAL(10,2) | DEFAULT 0.00 | 优惠金额 |
|
||
| actual_amount | DECIMAL(10,2) | NOT NULL | 实付金额 |
|
||
| freight_amount | DECIMAL(10,2) | DEFAULT 0.00 | 运费 |
|
||
| address_id | BIGINT | | 收货地址ID |
|
||
| consignee | VARCHAR(50) | | 收货人 |
|
||
| phone | VARCHAR(20) | | 联系电话 |
|
||
| province | VARCHAR(50) | | 省份 |
|
||
| city | VARCHAR(50) | | 城市 |
|
||
| district | VARCHAR(50) | | 区县 |
|
||
| detail_address | VARCHAR(255) | | 详细地址 |
|
||
| order_type | TINYINT | DEFAULT 1 | 订单类型:1-普通订单 |
|
||
| status | TINYINT | DEFAULT 1 | 状态:1-待支付,2-已支付,3-待发货,4-已发货,5-待收货,6-已完成,7-已取消,8-退款中,9-已退款 |
|
||
| pay_time | DATETIME | | 支付时间 |
|
||
| delivery_time | DATETIME | | 发货时间 |
|
||
| receive_time | DATETIME | | 收货时间 |
|
||
| cancel_time | DATETIME | | 取消时间 |
|
||
| cancel_reason | VARCHAR(255) | | 取消原因 |
|
||
| remark | VARCHAR(500) | | 订单备注 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
|
||
#### 2.4.6 订单商品表 (order_item)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| order_id | BIGINT | NOT NULL, INDEX | 订单ID |
|
||
| order_no | VARCHAR(32) | NOT NULL | 订单编号 |
|
||
| product_id | BIGINT | NOT NULL | 商品ID |
|
||
| product_name | VARCHAR(200) | NOT NULL | 商品名称 |
|
||
| sku_id | BIGINT | | 规格ID |
|
||
| sku_name | VARCHAR(255) | | 规格名称 |
|
||
| cover_image | VARCHAR(500) | | 商品图片 |
|
||
| unit_price | DECIMAL(10,2) | NOT NULL | 单价 |
|
||
| quantity | INT | NOT NULL | 数量 |
|
||
| total_price | DECIMAL(10,2) | NOT NULL | 小计 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
|
||
#### 2.4.7 物流表 (logistics)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| order_id | BIGINT | NOT NULL, UNIQUE | 订单ID |
|
||
| order_no | VARCHAR(32) | NOT NULL | 订单编号 |
|
||
| logistics_company | VARCHAR(50) | | 物流公司 |
|
||
| tracking_no | VARCHAR(100) | | 物流单号 |
|
||
| current_status | VARCHAR(100) | | 当前状态 |
|
||
| traces | TEXT | | 物流轨迹(JSON) |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
|
||
---
|
||
|
||
### 2.5 游记相关表
|
||
|
||
#### 2.5.1 游记表 (travel_note)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| user_id | BIGINT | NOT NULL, INDEX | 用户ID |
|
||
| user_nickname | VARCHAR(50) | | 用户昵称 |
|
||
| user_avatar | VARCHAR(500) | | 用户头像 |
|
||
| attraction_id | BIGINT | INDEX | 关联景点ID |
|
||
| attraction_name | VARCHAR(100) | | 景点名称 |
|
||
| title | VARCHAR(200) | NOT NULL | 游记标题 |
|
||
| cover_image | VARCHAR(500) | | 封面图片 |
|
||
| content | TEXT | NOT NULL | 游记内容(富文本) |
|
||
| images | TEXT | | 图片列表(JSON数组) |
|
||
| video_url | VARCHAR(500) | | 视频URL |
|
||
| tags | VARCHAR(255) | | 标签 |
|
||
| view_count | INT | DEFAULT 0 | 浏览次数 |
|
||
| like_count | INT | DEFAULT 0 | 点赞次数 |
|
||
| comment_count | INT | DEFAULT 0 | 评论次数 |
|
||
| favorite_count | INT | DEFAULT 0 | 收藏次数 |
|
||
| status | TINYINT | DEFAULT 0 | 状态:0-待审核,1-已发布,2-已下架 |
|
||
| reject_reason | VARCHAR(255) | | 审核拒绝原因 |
|
||
| publish_time | DATETIME | | 发布时间 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
| is_deleted | TINYINT | DEFAULT 0 | 逻辑删除 |
|
||
|
||
#### 2.5.2 评论表 (comment)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| user_id | BIGINT | NOT NULL, INDEX | 用户ID |
|
||
| user_nickname | VARCHAR(50) | | 用户昵称 |
|
||
| user_avatar | VARCHAR(500) | | 用户头像 |
|
||
| target_type | TINYINT | NOT NULL | 目标类型:1-景点,2-商品,3-游记 |
|
||
| target_id | BIGINT | NOT NULL, INDEX | 目标ID |
|
||
| parent_id | BIGINT | DEFAULT 0 | 父评论ID |
|
||
| content | TEXT | NOT NULL | 评论内容 |
|
||
| images | TEXT | | 评论图片 |
|
||
| like_count | INT | DEFAULT 0 | 点赞次数 |
|
||
| reply_count | INT | DEFAULT 0 | 回复次数 |
|
||
| status | TINYINT | DEFAULT 1 | 状态:0-隐藏,1-显示 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
| is_deleted | TINYINT | DEFAULT 0 | 逻辑删除 |
|
||
|
||
#### 2.5.3 点赞表 (like)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| user_id | BIGINT | NOT NULL, INDEX | 用户ID |
|
||
| target_type | TINYINT | NOT NULL | 目标类型:1-景点,2-商品,3-游记,4-评论 |
|
||
| target_id | BIGINT | NOT NULL, INDEX | 目标ID |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
|
||
---
|
||
|
||
### 2.6 内容管理表
|
||
|
||
#### 2.6.1 轮播图表 (banner)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| title | VARCHAR(100) | NOT NULL | 标题 |
|
||
| image_url | VARCHAR(500) | NOT NULL | 图片地址 |
|
||
| link_type | TINYINT | DEFAULT 1 | 链接类型:1-无链接,2-景点,3-商品,4-游记,5-外部链接 |
|
||
| link_id | BIGINT | | 链接ID |
|
||
| link_url | VARCHAR(500) | | 外部链接URL |
|
||
| sort | INT | DEFAULT 0 | 排序 |
|
||
| status | TINYINT | DEFAULT 1 | 状态:0-禁用,1-启用 |
|
||
| start_time | DATETIME | | 开始时间 |
|
||
| end_time | DATETIME | | 结束时间 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
|
||
#### 2.6.2 公告表 (announcement)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| title | VARCHAR(200) | NOT NULL | 标题 |
|
||
| content | TEXT | NOT NULL | 内容 |
|
||
| type | TINYINT | DEFAULT 1 | 类型:1-系统公告,2-活动通知 |
|
||
| cover_image | VARCHAR(500) | | 封面图片 |
|
||
| status | TINYINT | DEFAULT 1 | 状态:0-下架,1-上架 |
|
||
| sort | INT | DEFAULT 0 | 排序 |
|
||
| publish_time | DATETIME | | 发布时间 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
|
||
---
|
||
|
||
### 2.7 支付相关表
|
||
|
||
#### 2.7.1 支付记录表 (payment)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| payment_no | VARCHAR(64) | UNIQUE, NOT NULL | 支付单号 |
|
||
| order_type | TINYINT | NOT NULL | 订单类型:1-景点订单,2-商品订单 |
|
||
| order_id | BIGINT | NOT NULL | 订单ID |
|
||
| order_no | VARCHAR(32) | NOT NULL | 订单编号 |
|
||
| user_id | BIGINT | NOT NULL | 用户ID |
|
||
| amount | DECIMAL(10,2) | NOT NULL | 支付金额 |
|
||
| payment_method | TINYINT | NOT NULL | 支付方式:1-微信,2-支付宝,3-银行卡 |
|
||
| payment_status | TINYINT | DEFAULT 0 | 支付状态:0-待支付,1-支付中,2-已支付,3-支付失败,4-已退款 |
|
||
| transaction_id | VARCHAR(64) | | 第三方交易单号 |
|
||
| pay_time | DATETIME | | 支付时间 |
|
||
| callback_time | DATETIME | | 回调时间 |
|
||
| callback_content | TEXT | | 回调内容 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
|
||
#### 2.7.2 退款记录表 (refund)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| refund_no | VARCHAR(64) | UNIQUE, NOT NULL | 退款单号 |
|
||
| payment_id | BIGINT | NOT NULL | 支付记录ID |
|
||
| order_type | TINYINT | NOT NULL | 订单类型:1-景点订单,2-商品订单 |
|
||
| order_id | BIGINT | NOT NULL | 订单ID |
|
||
| order_no | VARCHAR(32) | NOT NULL | 订单编号 |
|
||
| user_id | BIGINT | NOT NULL | 用户ID |
|
||
| refund_amount | DECIMAL(10,2) | NOT NULL | 退款金额 |
|
||
| refund_reason | VARCHAR(255) | | 退款原因 |
|
||
| refund_status | TINYINT | DEFAULT 0 | 退款状态:0-待审核,1-审核通过,2-退款中,3-已退款,4-审核拒绝 |
|
||
| reject_reason | VARCHAR(255) | | 拒绝原因 |
|
||
| process_time | DATETIME | | 处理时间 |
|
||
| complete_time | DATETIME | | 完成时间 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
|
||
---
|
||
|
||
### 2.8 统计数据表
|
||
|
||
#### 2.8.1 每日统计表 (daily_statistics)
|
||
| 字段名 | 类型 | 约束 | 说明 |
|
||
|--------|------|------|------|
|
||
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
|
||
| stat_date | DATE | UNIQUE, NOT NULL | 统计日期 |
|
||
| new_user_count | INT | DEFAULT 0 | 新增用户数 |
|
||
| active_user_count | INT | DEFAULT 0 | 活跃用户数 |
|
||
| page_view | INT | DEFAULT 0 | 页面浏览量 |
|
||
| attraction_order_count | INT | DEFAULT 0 | 景点订单数 |
|
||
| attraction_gmv | DECIMAL(12,2) | DEFAULT 0.00 | 景点订单金额 |
|
||
| product_order_count | INT | DEFAULT 0 | 商品订单数 |
|
||
| product_gmv | DECIMAL(12,2) | DEFAULT 0.00 | 商品订单金额 |
|
||
| create_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
|
||
| update_time | DATETIME | DEFAULT CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
|
||
|
||
---
|
||
|
||
## 三、索引设计
|
||
|
||
### 3.1 联合索引
|
||
| 表名 | 索引名 | 字段 | 说明 |
|
||
|------|--------|------|------|
|
||
| favorite | idx_user_type | user_id, favorite_type, favorite_id | 用户收藏查询 |
|
||
| cart | idx_user_product | user_id, product_id | 用户购物车查询 |
|
||
| order_item | idx_order_product | order_id, product_id | 订单商品查询 |
|
||
| comment | idx_target | target_type, target_id | 评论查询 |
|
||
| like | idx_target | user_id, target_type, target_id | 点赞查询 |
|
||
|
||
---
|
||
|
||
## 四、表关系图
|
||
|
||
```
|
||
┌─────────┐ ┌──────────┐ ┌──────────┐
|
||
│ user │────→│ address │ │ favorite │
|
||
└────┬────┘ └──────────┘ └──────────┘
|
||
│ │
|
||
├────→┬──────────┐ ┌─────────────┴──┐
|
||
│ │ admin │────→│ admin_role │
|
||
│ └──────────┘ └───────┬────────┘
|
||
│ │
|
||
├───────→ role ◅──────────────┘
|
||
│
|
||
├────→ attraction_order
|
||
├────→ product_order ──────→ order_item
|
||
│ │
|
||
│ └────→ logistics
|
||
│
|
||
├────→ cart
|
||
│
|
||
├────→ travel_note
|
||
│
|
||
├────→ comment
|
||
│
|
||
├────→ like
|
||
│
|
||
└────→ payment ──────→ refund
|
||
|
||
┌─────────────────┐
|
||
│ attraction │←──→ ticket
|
||
└────────┬────────┘
|
||
│
|
||
└──→ travel_note
|
||
└──→ comment
|
||
|
||
┌─────────────────┐
|
||
│ product │←──→ sku
|
||
└────────┬────────┘
|
||
│
|
||
└──→ cart
|
||
└──→ order_item
|
||
└──→ comment
|
||
```
|