◀ 返回目录 04_设计 / 数据库结构树(设计初稿) 04_设计/数据库结构.md

数据库结构树(设计初稿)

版本:v0.1 日期:2026-10-15 数据库:微信云开发(文档型) 金额约定:一律用「分」存整数,避免浮点误差 时间约定:一律存服务端时间(serverDate()),不用客户端时间 说明:标〔迭代〕的集合一期不建。


一、用户与陪练者

图 1 用户与陪练者 78 个节点 · 最深 3 层
根节点 一级 二级 更深 点节点可折叠/展开它的下级
  • users用户
    • _idstring文档编号(系统自动)
    • _openidstring微信用户标识(系统自动写入)
    • nicknamestring昵称
    • avatarstring头像文件编号
    • phonestring手机号(加密存储)
    • gendernumber性别 0未知 1男 2女
    • realname_statusnumber实名状态 0未认证 1已提交 2已通过 3驳回
    • realname_infoobject实名信息(姓名/证件号,脱敏后存储)
    • balancenumber账户余额(分)
    • is_coachboolean是否同时是陪练者
    • inviter_idstring邀请人用户编号〔迭代〕
    • statusnumber账号状态 0正常 1封禁
    • last_login_atdate最近登录时间
    • created_atdate注册时间
    • updated_atdate更新时间
    • 索引
      • _openid唯一索引
      • status普通索引
      • phone普通索引
  • coaches陪练者
    • _idstring文档编号
    • _openidstring关联用户
    • user_idstring用户编号
    • nicknamestring展示名
    • avatarstring头像
    • gamesarray游戏与段位 [{game, rank, level}]
    • proof_imagesarray战绩截图文件编号
    • voice_introstring语音介绍文件编号
    • introstring服务说明
    • tagsarray标签(认证/线下/金牌…)
    • price_modenumber定价方式 0平台统一定价 1自定 2区间内自定
    • ratingnumber综合评分(保留一位小数)
    • order_countnumber累计完成订单数
    • accept_onlineboolean是否在线接单
    • accept_offlineboolean是否接线下单
    • service_citiesarray可服务城市(线下用)
    • settle_accountobject收款账户(脱敏)
    • share_rationumber分成比例(万分比,如 8000 = 80%)
    • payout_statusnumber结算状态 0正常 1冻结
    • cert_statusnumber认证状态 0未认证 1已认证 2已过期
    • statusnumber状态 0正常 1停用 2封禁
    • created_atdate
    • updated_atdate
    • 索引
      • _openid唯一索引
      • status + rating 组合索引(列表页主查询)
      • games.game普通索引(按游戏筛选)
  • coach_apply入驻申请
    • _idstring
    • user_idstring申请人
    • apply_nostring申请单号
    • realname_infoobject实名信息
    • gamesarray申报的游戏与段位
    • proof_imagesarray战绩截图
    • voice_introstring语音介绍
    • settle_accountobject收款账户
    • audit_statusnumber0待审 1通过 2驳回
    • reject_reasonstring驳回原因
    • auditor_idstring审核人
    • audited_atdate审核时间
    • created_atdate
    • 索引
      • audit_status + created_at 组合索引(待审队列)
      • user_id普通索引
  • admins后台管理员
    • _idstring
    • usernamestring登录名
    • password_hashstring密码散列
    • real_namestring姓名
    • phonestring手机号
    • rolenumber0超管 1运营 2财务 3客服 4内容审核 5只读
    • permissionsarray额外权限点
    • statusnumber0正常 1停用
    • last_login_atdate
    • created_atdate
    • 索引
      • username唯一索引

二、服务与订单

图 2 服务与订单 74 个节点 · 最深 3 层
根节点 一级 二级 更深 点节点可折叠/展开它的下级
  • services服务与价格
    • _idstring
    • coach_idstring所属陪练者
    • namestring服务名称(按小时/2小时套餐/排位带赢)
    • price_typenumber0按小时 1按套餐 2按局数
    • pricenumber价格(分)
    • duration_minnumber时长(分钟)
    • gamestring所属游戏
    • descriptionstring服务说明
    • onlineboolean是否上架
    • sortnumber排序权重
    • created_atdate
    • 索引
      • coach_id + online 组合索引
      • game普通索引
  • orders订单
    • _idstring
    • order_nostring订单号(对外展示)
    • user_idstring下单用户
    • coach_idstring陪练者
    • service_idstring购买的服务
    • service_snapshotobject下单时的服务快照(名称/价格/时长)
    • gamestring游戏
    • quantitynumber数量
    • amountnumber订单总额(分)
    • paid_amountnumber实付金额(分)
    • refund_amountnumber已退金额(分)
    • platform_feenumber平台分成(分)
    • coach_incomenumber陪练者收入(分)
    • statusnumber见「订单状态枚举」
    • appoint_typenumber0即时 1预约
    • appoint_startdate预约开始时间
    • appoint_enddate预约结束时间
    • start_atdate实际开始
    • end_atdate实际结束
    • confirm_atdate用户确认时间
    • settle_atdate结算时间
    • remarkstring用户备注
    • cancel_reasonstring取消原因
    • sourcenumber0直接下单 1抢单 2平台指派
    • created_atdate
    • updated_atdate
    • 索引
      • order_no唯一索引
      • user_id + status 组合索引(我的订单)
      • coach_id + status 组合索引(陪练者订单)
      • status + appoint_start 组合索引(接单广场 & 超时扫描)
      • created_at普通索引(后台筛选)
  • order_logs订单状态流转日志
    • _idstring
    • order_idstring订单编号
    • from_statusnumber原状态
    • to_statusnumber新状态
    • operator_typenumber0用户 1陪练者 2平台 3系统
    • operator_idstring操作人
    • remarkstring备注
    • created_atdate
    • 索引
      • order_id + created_at 组合索引
  • reviews评价
    • _idstring
    • order_idstring关联订单(一单一评)
    • user_idstring评价人
    • coach_idstring被评人
    • scorenumber评分 1-5
    • contentstring评价内容
    • imagesarray晒图
    • is_anonymousboolean是否匿名
    • reply_contentstring陪练者回复
    • audit_statusnumber0待审 1通过 2屏蔽
    • created_atdate
    • 索引
      • order_id唯一索引
      • coach_id + audit_status 组合索引

三、资金

图 3 资金 65 个节点 · 最深 3 层
根节点 一级 二级 更深 点节点可折叠/展开它的下级
  • payments支付与分成记录
    • _idstring
    • order_idstring订单编号
    • out_trade_nostring商户订单号
    • transaction_idstring微信支付单号
    • total_feenumber支付金额(分)
    • payer_openidstring付款人
    • pay_statusnumber0待支付 1已支付 2已退款 3支付失败
    • paid_atdate支付时间
    • profit_sharingboolean是否已分账
    • sharing_detailarray分账明细 [{receiver, amount, status}]
    • sharing_atdate分账时间
    • refund_nostring退款单号
    • refund_amountnumber退款金额(分)
    • refund_atdate
    • created_atdate
    • 索引
      • out_trade_no唯一索引
      • transaction_id唯一索引
      • order_id普通索引
  • wallets钱包
    • _idstring
    • owner_typenumber0用户 1陪练者
    • owner_idstring持有人
    • balancenumber可用余额(分)
    • frozennumber冻结金额(分)
    • total_incomenumber累计收入(分)
    • total_withdrawnumber累计提现(分)
    • updated_atdate
    • 索引
      • owner_type + owner_id 唯一组合索引
  • wallet_logs资金流水
    • _idstring
    • wallet_idstring钱包编号
    • owner_idstring持有人
    • directionnumber0收入 1支出
    • biz_typenumber0订单收入 1提现 2退款 3充值 4调整
    • amountnumber金额(分)
    • balance_afternumber变动后余额(分)
    • order_idstring关联订单
    • remarkstring备注
    • created_atdate
    • 索引
      • owner_id + created_at 组合索引
      • order_id普通索引
  • withdrawals提现申请
    • _idstring
    • coach_idstring申请人
    • withdraw_nostring提现单号
    • amountnumber提现金额(分)
    • feenumber手续费(分)
    • actual_amountnumber实际到账(分)
    • account_snapshotobject收款账户快照
    • audit_statusnumber0待审 1通过 2驳回
    • auditor_idstring审核人
    • audited_atdate
    • reject_reasonstring驳回原因
    • pay_statusnumber0未打款 1已打款 2打款失败
    • transfer_nostring打款单号
    • paid_atdate
    • created_atdate
    • 索引
      • withdraw_no唯一索引
      • audit_status + created_at 组合索引(待审队列)
      • coach_id + created_at 组合索引

四、沟通与风控

图 4 沟通与风控 54 个节点 · 最深 3 层
根节点 一级 二级 更深 点节点可折叠/展开它的下级
  • chats会话
    • _idstring
    • order_idstring关联订单(一期只做订单内会话)
    • user_idstring用户
    • coach_idstring陪练者
    • last_messagestring最后一条消息摘要
    • last_message_atdate
    • unread_usernumber用户未读数
    • unread_coachnumber陪练者未读数
    • created_atdate
    • 索引
      • order_id唯一索引
      • user_id + last_message_at 组合索引
  • messages消息
    • _idstring
    • chat_idstring所属会话
    • sender_idstring发送人
    • sender_typenumber0用户 1陪练者 2系统
    • msg_typenumber0文字 1图片 2语音 3系统通知
    • contentstring内容(文字或用文件编号)
    • audit_statusnumber0待审 1通过 2拦截
    • is_readboolean是否已读
    • created_atdate
    • 索引
      • chat_id + created_at 组合索引
      • audit_status普通索引(待审扫描)
  • reports举报
    • _idstring
    • reporter_idstring举报人
    • target_typenumber0用户 1陪练者 2订单 3评价 4消息
    • target_idstring被举报对象
    • reason_typenumber举报类型
    • descriptionstring补充说明
    • imagesarray证据截图
    • handle_statusnumber0待处理 1已处理 2已驳回
    • handler_idstring处理人
    • handle_resultstring处理结果
    • handled_atdate
    • created_atdate
    • 索引
      • handle_status + created_at 组合索引
  • audit_logs内容审核日志
    • _idstring
    • biz_typenumber0昵称 1简介 2评价 3消息 4图片 5服务说明
    • biz_idstring业务对象编号
    • owner_idstring内容归属人
    • contentstring被审内容(截断存储)
    • audit_channelnumber0微信内容安全接口 1第三方 2人工
    • audit_resultnumber0通过 1疑似 2违规
    • risk_labelstring风险标签
    • auditor_idstring人工审核人
    • created_atdate
    • 索引
      • audit_result + created_at 组合索引

五、运营与配置

图 5 运营与配置 37 个节点 · 最深 3 层
根节点 一级 二级 更深 点节点可折叠/展开它的下级
  • banners运营位〔迭代〕
    • _idstring
    • positionnumber位置 0首页轮播 1活动位
    • titlestring
    • imagestring图片文件编号
    • link_typenumber0无跳转 1陪练详情 2活动页 3外链
    • link_valuestring
    • sortnumber
    • onlineboolean
    • start_at / end_at date 投放时间
    • 索引
      • position + online + sort 组合索引
  • coupons优惠券〔迭代〕
    • _idstring
    • namestring券名
    • typenumber0满减 1折扣 2立减
    • valuenumber面额或折扣
    • thresholdnumber使用门槛(分)
    • total_countnumber发行量
    • used_countnumber已使用
    • valid_typenumber0固定日期 1领取后 N 天
    • valid_start / end date
    • valid_daysnumber
    • statusnumber0草稿 1进行中 2已结束
    • 索引
      • status + valid_end 组合索引
  • configs系统配置
    • _idstring
    • keystring配置键
    • valueobject配置值
    • descriptionstring说明
    • updated_bystring修改人
    • updated_atdate
    • 索引
      • key唯一索引
  • (关键配置项:平台抽成比例、最低提现金额、提现手续费率、服务时长选项、
  • 自动确认时长、订单超时时间、客服电话、服务时段、分成比例上限)

六、枚举速查

图 6 枚举速查 20 个节点 · 最深 2 层
根节点 一级 二级 更深 点节点可折叠/展开它的下级
  • order.status订单状态
    • 0待支付
    • 1待派单
    • 2待服务
    • 3进行中
    • 4待确认
    • 5已完成
    • 6已取消
    • 7退款中
    • 8已退款
    • 9售后中
  • orders.source订单来源
    • 0用户直接下单(已指定陪练者)
    • 1用户下单后陪练者抢单
    • 2平台指派
  • order_logs.operator_type操作人
    • 0用户
    • 1陪练者
    • 2平台(后台)
    • 3系统(定时任务)

设计说明

  1. 快照原则:订单里存 service_snapshot,陪练者改价不影响历史订单。
  2. 金额全用分:amount / paid_amount / platform_fee / coach_income 全是整数分。
  3. 日志表只增不改:order_logs / wallet_logs / audit_logs 永不更新,只追加,便于对账与追溯。
  4. 索引按查询设计:组合索引都对应一个明确的列表页查询,不建无用索引。
  5. 权限规则:用户只能读自己的数据;接单广场的订单卡片走云函数返回脱敏字段,不直接开放 orders 集合的读权限。