旅游宣传管理系统 - 数据库设计文档
一、数据库规划
- 数据库名称:
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 |
逻辑删除 |
| 字段名 |
类型 |
约束 |
说明 |
| 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