tourism-system/旅游宣传管理系统-数据库设计.md

560 lines
24 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.

# 旅游宣传管理系统 - 数据库设计文档
## 一、数据库规划
- 数据库名称:`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
```