数据库结构树(设计初稿)
版本:v0.1 日期:2026-10-15
数据库:微信云开发(文档型)
金额约定:一律用「分」存整数,避免浮点误差
时间约定:一律存服务端时间(serverDate()),不用客户端时间
说明:标〔迭代〕的集合一期不建。
一、用户与陪练者
图 1
用户与陪练者
根节点
一级
二级
更深
点节点可折叠/展开它的下级
- 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
服务与订单
根节点
一级
二级
更深
点节点可折叠/展开它的下级
- 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
资金
根节点
一级
二级
更深
点节点可折叠/展开它的下级
- 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
沟通与风控
根节点
一级
二级
更深
点节点可折叠/展开它的下级
- 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
运营与配置
根节点
一级
二级
更深
点节点可折叠/展开它的下级
- 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
枚举速查
根节点
一级
二级
更深
点节点可折叠/展开它的下级
- 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系统(定时任务)
设计说明
- 快照原则:订单里存
service_snapshot,陪练者改价不影响历史订单。 - 金额全用分:
amount/paid_amount/platform_fee/coach_income全是整数分。 - 日志表只增不改:
order_logs/wallet_logs/audit_logs永不更新,只追加,便于对账与追溯。 - 索引按查询设计:组合索引都对应一个明确的列表页查询,不建无用索引。
- 权限规则:用户只能读自己的数据;接单广场的订单卡片走云函数返回脱敏字段,不直接开放 orders 集合的读权限。