首页 > 学习中心 > 公司动态 > 产品动态

来团科技服务抢单派单系统 - 数据库表结构设计

一、设计原则

  1. 符合第三范式 ,减少数据冗余;
  2. 适配 “自营 + 多商家联营” 双模式,字段预留扩展空间;
  3. 优化索引设计,适配小程序高频查询场景(如附近服务者、抢单列表);
  4. 记录关键操作日志,支持财务对账和问题追溯。

二、核心数据表结构

1. 基础用户表(user)

存储微信小程序用户(C 端)的核心信息

字段名数据类型主键 / 外键非空注释
idbigint unsigned主键用户唯一 ID
wx_openidvarchar(128)唯一索引微信小程序 openid(用户唯一标识)
wx_unionidvarchar(128)索引微信 unionid(多小程序 / 公众号互通)
nicknamevarchar(64)
用户昵称(脱敏存储)
avatarvarchar(255)
用户头像 URL
phonevarchar(20)索引手机号(脱敏,如 138****1234)
real_phonevarchar(20)
真实手机号(加密存储,仅后台可解密)
gendertinyint
性别:0 - 未知 1 - 男 2 - 女
create_timedatetime索引创建时间(注册时间)
update_timedatetime
更新时间
last_login_timedatetime
最后登录时间
statustinyint
状态:0 - 正常 1 - 禁用 2 - 注销

2. 服务者表(service_provider)

存储上门服务人员信息(自营 / 商家所属)

字段名数据类型主键 / 外键非空注释
idbigint unsigned主键服务者唯一 ID
merchant_idbigint unsigned外键所属商家 ID(0 = 平台自营)
wx_openidvarchar(128)唯一索引服务者小程序 openid
real_namevarchar(32)
真实姓名
id_cardvarchar(32)唯一索引身份证号(加密存储)
phonevarchar(20)索引手机号(明文,用于派单联系)
avatarvarchar(255)
服务者头像
service_typesvarchar(255)
擅长服务类型(JSON 数组,如 ["保洁","维修"])
scoredecimal(2,1)
服务评分(0-5 分)
statustinyint索引状态:0 - 待审核 1 - 正常 2 - 暂停 3 - 禁用
deposit_amountdecimal(10,2)
保证金金额(0 = 无需缴纳)
current_lngdecimal(10,6)索引当前经度(实时更新)
current_latdecimal(10,6)索引当前纬度(实时更新)
receive_order_modetinyint
接单模式:0 - 仅派单 1 - 仅抢单 2 - 派单 + 抢单
create_timedatetime
创建时间
update_timedatetime
更新时间

3. 商家表(merchant)

存储联营商家信息

字段名数据类型主键 / 外键非空注释
idbigint unsigned主键商家唯一 ID
merchant_namevarchar(64)索引商家名称
merchant_logovarchar(255)
商家 logo
merchant_addressvarchar(255)
商家地址
lngdecimal(10,6)索引商家经度
latdecimal(10,6)索引商家纬度
contact_namevarchar(32)
联系人姓名
contact_phonevarchar(20)索引联系人手机号
business_licensevarchar(255)
营业执照图片 URL
service_scopevarchar(255)
服务范围(JSON 数组)
commission_ratedecimal(5,2)
平台抽佣比例(如 5.00=5%)
statustinyint索引状态:0 - 待审核 1 - 正常 2 - 暂停 3 - 禁用
create_timedatetime
创建时间
update_timedatetime
更新时间

4. 服务项目表(service_item)

存储平台 / 商家的服务项目(如日常保洁、家电维修)

字段名数据类型主键 / 外键非空注释
idbigint unsigned主键服务项目 ID
merchant_idbigint unsigned外键所属商家 ID(0 = 平台自营)
item_namevarchar(64)索引服务项目名称(如 “日常保洁 3 小时”)
item_categoryvarchar(32)索引服务分类(如 “保洁”“维修”)
pricedecimal(10,2)
基础价格
original_pricedecimal(10,2)
原价(用于展示优惠)
service_typetinyint索引服务模式:0 - 上门 1 - 到店 2 - 上门 + 到店
service_desctext
服务描述
cover_imagevarchar(255)
封面图 URL
statustinyint索引状态:0 - 下架 1 - 上架
create_timedatetime
创建时间
update_timedatetime
更新时间

5. 订单主表(order_main)

存储订单核心信息(全流程状态流转)

字段名数据类型主键 / 外键非空注释
idbigint unsigned主键订单 ID(雪花算法生成,便于排序)
order_snvarchar(32)唯一索引订单编号(如 JD202601180001)
user_idbigint unsigned外键下单用户 ID
merchant_idbigint unsigned外键所属商家 ID(0 = 平台自营)
service_provider_idbigint unsigned外键服务者 ID(抢单 / 派单后填充)
service_item_idbigint unsigned外键服务项目 ID
service_typetinyint
服务模式:0 - 上门 1 - 到店
order_amountdecimal(10,2)
订单金额
pay_amountdecimal(10,2)
实际支付金额(含优惠)
discount_amountdecimal(10,2)
优惠金额
service_addressvarchar(255)
服务地址(上门必填)
service_lngdecimal(10,6)
服务地址经度
service_latdecimal(10,6)
服务地址纬度
service_timedatetime索引预约服务时间
order_modetinyint
订单模式:0 - 派单 1 - 抢单 2 - 用户选服务者
order_statustinyint索引订单状态:0 - 待支付 1 - 待接单 2 - 待服务 3 - 服务中 4 - 待确认 5 - 已完成 6 - 已取消 7 - 售后中
pay_statustinyint
支付状态:0 - 未支付 1 - 已支付 2 - 已退款
pay_timedatetime
支付时间
create_timedatetime索引创建时间
update_timedatetime
更新时间

6. 订单抢单记录表(order_grab_log)

记录抢单 / 派单操作日志,用于追溯

字段名数据类型主键 / 外键非空注释
idbigint unsigned主键日志 ID
order_idbigint unsigned外键关联订单 ID
operator_typetinyint
操作人类型:0 - 服务者 1 - 商家 2 - 平台管理员
operator_idbigint unsigned
操作人 ID(服务者 / 商家 / 管理员 ID)
grab_typetinyint
操作类型:0 - 抢单 1 - 派单 2 - 拒绝接单
grab_statustinyint
操作结果:0 - 成功 1 - 失败
fail_reasonvarchar(255)
失败原因(如 “订单已被抢”)
create_timedatetime
操作时间

7. 财务流水表(finance_flow)

存储所有资金流转记录,支持对账

字段名数据类型主键 / 外键非空注释
idbigint unsigned主键流水 ID
related_idbigint unsigned索引关联 ID(订单 ID / 提现 ID)
related_typetinyint
关联类型:0 - 订单 1 - 提现 2 - 充值 3 - 退款 4 - 平台抽佣
target_typetinyint
资金归属:0 - 用户 1 - 服务者 2 - 商家 3 - 平台
target_idbigint unsigned
归属 ID(用户 / 服务者 / 商家 ID)
amountdecimal(10,2)
金额(正数 = 收入,负数 = 支出)
balancedecimal(10,2)
操作后余额
flow_snvarchar(32)唯一索引流水编号
wx_pay_snvarchar(64)索引微信支付单号(支付 / 退款)
statustinyint索引状态:0 - 待处理 1 - 已完成 2 - 失败
create_timedatetime索引创建时间

8. 提现申请表(withdraw_apply)

存储服务者 / 商家的提现申请

字段名数据类型主键 / 外键非空注释
idbigint unsigned主键提现 ID
apply_typetinyint
提现类型:0 - 服务者 1 - 商家
apply_idbigint unsigned
提现人 ID(服务者 / 商家 ID)
withdraw_amountdecimal(10,2)
提现金额
service_feedecimal(10,2)
提现手续费
actual_amountdecimal(10,2)
实际到账金额
wx_accountvarchar(64)
微信收款账号(openid / 商户号)
apply_statustinyint索引状态:0 - 待审核 1 - 审核通过 2 - 打款中 3 - 已到账 4 - 审核拒绝 5 - 打款失败
audit_timedatetime
审核时间
audit_user_idbigint unsigned
审核人 ID(平台管理员)
pay_timedatetime
打款时间
fail_reasonvarchar(255)
失败原因
create_timedatetime索引申请时间
update_timedatetime
更新时间

9. 系统配置表(system_config)

存储平台全局配置

字段名数据类型主键 / 外键非空注释
idbigint unsigned主键配置 ID
config_keyvarchar(64)唯一索引配置键(如 “platform_commission_rate”)
config_valuetext
配置值(JSON / 字符串)
config_descvarchar(255)
配置描述
create_timedatetime
创建时间
update_timedatetime
更新时间

三、其他优化

1. 索引优化

  • 高频查询字段(如order_statusservice_timecurrent_lng/lat)必须加索引;
  • 联合索引:order_main 表建议创建(merchant_id, order_status, create_time) 联合索引,适配商家端订单列表查询。

2.  事务控制

  • 订单创建、支付、抢单、结算等核心操作必须包裹事务,避免数据不一致;
  • 示例:
// 抢单事务示例
  $pdo->beginTransaction();
try {
// 1. 锁定订单行,防止并发抢单
$stmt = $pdo->prepare("SELECT * FROM order_main WHERE id = ? FOR UPDATE");
$stmt->execute([$order_id]);
$order = $stmt->fetch(PDO::FETCH_ASSOC);
  
  // 2. 检查订单状态(仅待接单可抢)
  if ($order['order_status'] != 1) {
  throw new Exception("订单已被抢");
  }
  
  // 3. 更新订单服务者ID和状态
  $stmt = $pdo->prepare("UPDATE order_main SET service_provider_id = ?, order_status = 2, update_time = NOW() WHERE id = ?");
  $stmt->execute([$provider_id, $order_id]);
  
  // 4. 记录抢单日志
  $stmt = $pdo->prepare("INSERT INTO order_grab_log (order_id, operator_type, operator_id, grab_type, grab_status) VALUES (?, 0, ?, 0, 0)");
  $stmt->execute([$order_id, $provider_id]);
  
  $pdo->commit();
} catch (Exception $e) {
  $pdo->rollBack();
// 记录失败日志
$stmt = $pdo->prepare("INSERT INTO order_grab_log (order_id, operator_type, operator_id, grab_type, grab_status, fail_reason) VALUES (?, 0, ?, 0, 1, ?)");
$stmt->execute([$order_id, $provider_id, $e->getMessage()]);
  }

3.  数据加密

  • 手机号、身份证号等敏感信息需加密存储(推荐 AES-256),仅后台解密展示;
  • 微信 openid/unionid 建议做哈希存储(如 md5),避免明文泄露。

4.  分表策略

  • 订单表(order_main)按月份分表(如order_main_202601),避免单表数据量过大;
  • 财务流水表(finance_flow)同理,按季度分表。

推荐商品

更多
来团GEO-AI搜索优化系统 用AI打造企业品牌

来团GEO-AI搜索优化系统 用AI打造企业品牌

来团科技GEO优化&AI搜索优化系统,是通过大模型内容投喂+训练,将企业品牌及产品信息在多平台AI生成的答案中获取优先展现,更精准触达潜在目标客户,让企业品牌出现在AI搜索里。让客户一搜就看到你,实现一问就有你,一查就信你,一看就找你的营销效果。

来团智慧商业小程序零代码开发平台 多行业适用

来团智慧商业小程序零代码开发平台 多行业适用

来团智慧商业小程序零代码开发平台,多行业适配。无需代码,拖拽式设计,轻松打造订货商城、会员制商城、分销商城及小程序官网。不仅能满足通用需求,还支持定制化,从页面布局到功能模块,随心定制,助您快速搭建专属商业小程序,抢占市场先机。

微名通名片 VIP年卡会员 | SVIP永久会员

微名通名片 VIP年卡会员 | SVIP永久会员

来团科技微名通不止是电子名片,更是你的商业连接器。比起传统名片,它更像你的 “迷你商业工具”:信息多、好携带、能互动,还不浪费纸张。不管是跑业务、拓人脉,还是展示企业,一张「微名通」电子名片,就能帮你把商机揣在手机里。

来团LTCRM客户管理系统 可独立部署

来团LTCRM客户管理系统 可独立部署

来团科技CRM客户管理系统,帮你把 “线索→成交→回款” 全流程管明白。这就是一套 “让销售省心、老板放心” 的客户管理工具,从获客到回款,帮你把生意攥在手里。

联系我们
联系方式
  • 官方服务热线:17721141027
  • 邮箱:kf@ilaituan.com
  • QQ:20262336
扫码添加客服
微信