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