主题
多多多宝数据库表结构分析
基于
docs/duo.sql文件分析
分析时间:2025-10-09
数据库:MySQL 5.5.60
字符集:utf8_unicode_ci
📊 概览
该系统共包含 31 张数据表,是一个基于拼多多多多客 API 的电商 CPS(按销售付费)推广平台,支持多级分销、地域代理和用户晋升体系。
表分类统计
| 分类 | 表数量 | 说明 |
|---|---|---|
| 用户相关 | 4 | 用户信息、登录令牌、验证码、邀请码 |
| 订单与收益 | 3 | 多多客订单、资金流水、提现记录 |
| 地域代理 | 3 | 城市代理、代理申请、店铺码 |
| 晋升与等级 | 2 | 晋升规则、晋升记录 |
| 内容管理 | 6 | 轮播图、活动、背景图、问答、热搜 |
| 支付相关 | 3 | 支付订单、积分购买、积分流水 |
| 物料与商品 | 3 | 物料活动、物料商品、物料订单 |
| 批次管理 | 2 | 拉新批次、拉新订单 |
| 购物车 | 2 | 购物车主表、购物车商品 |
| 系统管理 | 3 | 管理员、商品分类、其他 |
1️⃣ 用户相关表(User Management)
pdd_user - 用户主表 ⭐️⭐️⭐️
核心业务表,存储用户基本信息、等级、地理位置和推广关系。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
unionid | varchar(255) | 微信 unionid |
openid | varchar(255) | 微信 openid(用于小程序登录) |
nickname | varchar(255) | 昵称 |
avatar | varchar(255) | 头像 URL |
username | varchar(20) | 手机号码 |
invitation_code | varchar(30) | 邀请码(6位,可能是靓号) |
relation_id | varchar(100) | 多多客推广位 ID(格式:PID_ADZONE_ID) |
reg_time | bigint(20) | 注册时间戳 |
level_id | tinyint(4) | 用户等级(0普通/1合伙人/2高级总监/3市代理) |
lng | decimal(11,6) | 经度 |
lat | decimal(11,6) | 纬度 |
act_city_code | varchar(255) | 实际所在城市编码 |
town_code | int(11) | 所属镇编码 |
district_code | int(11) | 所属县/区编码 |
city_code | int(11) | 所属市编码 |
inviter_user_id | int(11) | 邀请人用户 ID(构建推广关系链) |
upgrade_time | bigint(20) | 升级时间 |
status | tinyint(4) | 账号状态(0正常/1禁用) |
alipay_account | varchar(100) | 支付宝账号(用于提现) |
rel_name | varchar(100) | 真实姓名 |
is_known | varchar(255) | 已知城市列表(逗号分隔) |
store_code | varchar(30) | 所属店铺码 |
核心业务逻辑:
- 分级体系:普通用户 → 合伙人(累计佣金≥100元) → 高级总监(≥500元) → 市代理(申请审核)
- 地域化管理:基于城市/区县/镇的三级地域代理体系
- 推广关系链:通过
inviter_user_id构建无限层级的邀请树 - 多多客集成:每个用户拥有独立的
relation_id(多多客推广位),用于订单追踪和佣金结算
数据示例:
sql
-- 用户 ID: 3, 昵称: 希浠爸, 手机: 18854353396
-- 邀请码: 252653, 推广位: 9322052_120050393
-- 等级: 0(普通), 邀请人: 用户4, 地区: 滨州市滨城区pdd_token - 用户登录令牌表
存储用户登录会话令牌,用于 API 鉴权。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
user_id | int(11) | 用户 ID |
token | varchar(255) | 登录令牌(UUID 或 JWT) |
create_time | bigint(20) | 创建时间戳 |
使用场景:
- 用户登录后生成 token
- API 请求携带 token 验证身份(Header:
Authorization: Token xxx)
pdd_telcode - 手机验证码表
存储手机短信验证码,用于登录、注册、修改手机号等场景。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
phone | varchar(20) | 手机号码 |
code | varchar(10) | 验证码(6位数字) |
createtime | bigint(20) | 创建时间戳 |
安全建议:
- 添加过期时间字段(如 5 分钟有效期)
- 添加验证次数限制字段(防止暴力破解)
- 验证成功后标记为已使用
pdd_goodinvitatercode - 优质邀请码池
预置了大量靓号邀请码(如 000001, 111111, 888888 等),用于分配给特殊用户。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
code | varchar(255) | 6位邀请码 |
数据特点:
- 共约 200 条靓号码(豹子号、顺子号、对称号等)
- 示例:
000001,100000,111111,222222,123456,888888
使用场景:
- 新用户注册时从池中随机抽取未使用的靓号
- 或为 VIP 用户手动分配特殊邀请码
2️⃣ 订单与收益表(Order & Income)
pdd_order - 多多客订单表 ⭐️⭐️⭐️
核心业务表,存储从多多客 API 同步的订单数据。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
trade_parent_id | varchar(255) | 父订单 ID(用于关联子订单) |
trade_id | varchar(255) | 淘宝订单号(唯一标识) |
num_iid | varchar(255) | 商品 ID |
item_title | varchar(255) | 商品标题 |
item_num | int(11) | 购买数量 |
price | double | 商品单价 |
pay_price | double | 实际支付金额 |
seller_nick | varchar(255) | 卖家昵称 |
seller_shop_title | varchar(255) | 店铺名称 |
commission | double | 预估佣金(多多客佣金) |
commission_rate | double | 佣金比率 |
unid | varchar(255) | 会员运营 ID |
create_time | bigint(20) | 订单创建时间 |
earning_time | bigint(20) | 结算时间(佣金到账时间) |
tk_status | int(11) | 订单状态(3付款/12结算/13失效/14成功/5已结算) |
tk3rd_type | varchar(255) | 第三方服务类型 |
tk3rd_pub_id | varchar(255) | 第三方推广者 ID |
order_type | varchar(255) | 订单类型 |
income_rate | double | 分成比率(推广者分成比例) |
pub_share_pre_fee | double | 推广者预估收益 |
subsidy_rate | double | 补贴比率 |
subsidy_type | int(11) | 补贴类型 |
subsidy_fee | double | 补贴金额 |
terminal_type | int(11) | 终端类型(PC/移动) |
auction_category | varchar(255) | 商品类目 |
site_id | varchar(255) | 推广位 ID |
site_name | varchar(255) | 推广位名称 |
adzone_id | varchar(255) | 广告位 ID |
adzone_name | varchar(255) | 广告位名称 |
alipay_total_price | double | 支付宝实付金额 |
total_commission_rate | double | 总佣金比率 |
total_commission_fee | double | 总佣金 |
relation_id | varchar(255) | 推广位 ID(关联 pdd_user.relation_id) |
special_id | varchar(255) | 特殊 ID |
click_time | bigint(6) | 点击时间 |
pict_url | varchar(255) | 商品主图 URL |
user_id | int(11) | 推广用户 ID |
status | int(11) | 特殊订单标识(0普通/1零元购/2一元购) |
subsidy | decimal(11,2) | 平台补贴金额 |
bar_id | int(11) | 未知字段 |
订单状态流转:
tk_status = 3 (已付款) →
tk_status = 12 (已结算) →
tk_status = 14 (结算成功) / tk_status = 13 (订单失效)核心业务逻辑:
- 订单同步:定时调用多多客 API 拉取订单数据
- 佣金计算:
pub_share_pre_fee= 商品佣金 ×income_rate - 分润触发:订单结算成功后,写入
pdd_money表进行分润
数据示例:
sql
-- 订单号: 191024-064573277250541
-- 商品: 金樱花豆豉鲮鱼罐头, 价格: 29.9元
-- 佣金: 1.5元, 分成比率: 5%, 推广者收益: 0.9元
-- 用户ID: 3, 状态: 5(已结算)pdd_money - 资金流水表 ⭐️⭐️⭐️
最核心的表,记录所有用户的资金变动,包括佣金、提成、提现等。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
money_type | int(11) | 资金类型(1拉新/2佣金/3提成/4补贴/5维权/6取现) |
order_num | varchar(255) | 关联订单号(淘宝订单号或系统订单号) |
count | double | 金额(正数为收入,负数为支出) |
create_time | bigint(20) | 创建时间 |
user_id | int(11) | 用户 ID |
status | int(11) | 结算状态(0预估/1已结算) |
tx_id | int(11) | 提现记录 ID(关联 pdd_withdraw.id) |
settle_time | bigint(20) | 结算时间 |
settle_month | int(11) | 结算月份(YYYYMM) |
city_code | int(11) | 用户所在城市编码 |
town | int(11) | 镇代理用户 ID |
district | int(11) | 县/区代理用户 ID |
city | int(11) | 市代理用户 ID |
资金类型详解:
- 1 - 拉新:邀请新用户注册的奖励(如首单奖励)
- 2 - 佣金:自购或直接下级购买产生的佣金收益
- 3 - 提成:上级从下级收益中抽取的提成(分二级/三级)
- 4 - 补贴:平台活动补贴(如零元购、满减活动)
- 5 - 维权:订单维权/退款导致的扣款
- 6 - 取现:用户提现扣款(金额为负数)
分润机制示例:
假设用户 A 邀请了用户 B,B 又邀请了 C,C 购买商品产生 10 元佣金:
订单佣金: 10元
→ C 获得佣金(money_type=2): 10 * 60% = 6元
→ B 获得提成(money_type=3): 10 * 20% = 2元 (C的上级)
→ A 获得提成(money_type=3): 10 * 10% = 1元 (C的上上级)
→ 地区代理分成(money_type=2): 10 * 10% = 1元地域代理分成逻辑:
- 如果用户 C 属于某个城市代理,则该代理也会获得一定比例的分成
- 通过
city_code,town,district,city字段记录地区代理信息
数据示例:
sql
-- 用户3的佣金收益
INSERT INTO `pdd_money` VALUES
(1097, 2, '191024-064573277250541', 0.9, 1571887737, 3, 1, 0, 1574289369, null, 371602, 0, 371602, 0);
-- money_type=2(佣金), count=0.9元, status=1(已结算), city_code=371602(滨州滨城区)
-- 用户2获得提成
INSERT INTO `pdd_money` VALUES
(1098, 3, '191024-064573277250541', 0.18, 1571887737, 2, 1, 0, 1574289369, null, 0, 0, 0, 0);
-- money_type=3(提成), count=0.18元
-- 用户2提现扣款
INSERT INTO `pdd_money` VALUES
(1091, 6, null, -1.35, 1571992112, 2, 1, 96, 1571992113, null, 0, 0, 0, 0);
-- money_type=6(取现), count=-1.35元, tx_id=96(关联提现记录)pdd_withdraw - 提现记录表
存储用户的提现申请和处理记录。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
order_id | varchar(50) | 系统提现订单号 |
trade_id | varchar(50) | 微信付款单号(成功后返回) |
submit_time | bigint(6) | 提交时间 |
dispose_time | bigint(6) | 处理时间 |
status | int(11) | 提现状态(0未审核/1成功/2失败) |
money | double | 申请提现金额 |
realmoney | double | 实际到账金额(扣除手续费后) |
user_id | int(11) | 用户 ID |
user_account | varchar(100) | 微信昵称 |
msg | varchar(100) | 失败原因 |
提现流程:
1. 用户申请提现 → 创建 pdd_withdraw 记录(status=0)
2. 同步扣减余额 → pdd_money 插入一条 money_type=6 的负数记录
3. 管理员审核 → 调用微信企业付款到零钱 API
4. 转账成功 → 更新 status=1, trade_id=微信付款单号
5. 转账失败 → 更新 status=2, msg=失败原因, 退回余额手续费计算: 根据数据示例,系统收取 0% 手续费(money = realmoney):
sql
-- money: 1.35元, realmoney: 1.35元 → 无手续费
-- money: 14.48元, realmoney: 14.48元 → 无手续费注意事项:
- 提现审核需人工处理(后台管理系统)
- 提现方式:微信企业付款到零钱
- 需要用户已完成微信授权登录(获取openid)
- 失败原因可能包括:openid不存在、账号被冻结、商户余额不足等
3️⃣ 地域代理表(Regional Agency)
pdd_city - 城市代理表
存储已开通的代理城市,支持市/县/镇三级代理体系。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
city_name | varchar(50) | 城市名称 |
city_code | int(11) | 城市编码(6位行政区划代码) |
create_time | bigint(20) | 开通时间 |
pid | int(11) | 上级代理 ID(构建层级关系) |
city_level | tinyint(4) | 代理级别(1镇/2县区/3市) |
lng | decimal(20,5) | 经度 |
lat | decimal(20,5) | 纬度 |
层级关系示例:
山东省
├── 滨州市 (city_level=3, city_code=371600, pid=0)
│ ├── 滨城区 (city_level=2, city_code=371602, pid=1)
│ │ └── 市中街道 (city_level=1, city_code=371602001, pid=32)
│ ├── 惠民县 (city_level=2, city_code=371621, pid=1)
│ ├── 沾化区 (city_level=2, city_code=371603, pid=1)
│ │ └── 大高镇 (city_level=1, city_code=371603105, pid=13)
│ └── ...
├── 济南市 (city_level=3, city_code=370100, pid=0)
│ ├── 历下区 (city_level=2, city_code=370102, pid=2)
│ ├── 历城区 (city_level=2, city_code=370112, pid=2)
│ └── ...
└── ...代理分成逻辑:
- 当用户完成订单后,系统根据用户的
city_code查询所属代理 - 市代理、县代理、镇代理分别按比例获得分成(记录在
pdd_money表)
数据覆盖:
- 主要覆盖山东省(滨州、济南、青岛、烟台等)
- 部分其他省市(上海、北京、广州等)
pdd_apply - 代理申请表
存储用户申请成为城市代理的记录。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
uid | int(11) | 申请用户 ID |
team | varchar(255) | 团队名称 |
has_company | tinyint(4) | 是否有公司(0无/1有) |
company_address | varchar(255) | 公司地址 |
company | varchar(255) | 公司名称 |
address | varchar(255) | 个人地址 |
name | varchar(60) | 真实姓名 |
phone | bigint(20) | 联系电话 |
wx | varchar(100) | 微信号 |
create_time | bigint(20) | 提交时间 |
status | tinyint(4) | 审核状态(0未审核/1通过/2未通过) |
dispose_time | bigint(20) | 处理时间 |
city_name | varchar(100) | 代理城市名称 |
city_code | int(11) | 代理城市编码 |
apply_city | varchar(100) | 申请的城市(文本) |
申请流程:
1. 用户填写代理申请表(团队名称、公司信息、联系方式、申请城市)
2. 提交申请 → pdd_apply 插入记录(status=0)
3. 管理员审核 → 更新 status=1(通过) 或 status=2(拒绝)
4. 审核通过 → 更新 pdd_user.level_id=3(市代理)数据示例:
sql
-- 用户3申请滨州市代理
INSERT INTO `pdd_apply` VALUES
(20, 3, '哈罗团队', 1, '富泰国际·中央公园', '哈罗科技', '大厦门市',
'时春磊', 18854353396, 'haluoa', 1572494399, 1, 1572494454, '滨州', 371600, '哈罗市');
-- status=1(已通过), city_code=371600(滨州市)pdd_storecode - 店铺码表
为线下实体店生成专属推广码,扫码购物佣金归店铺所有者。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
code | varchar(50) | 店铺码(8位随机字符串) |
uid | int(11) | 店铺所有者用户 ID |
create_time | bigint(20) | 创建时间 |
使用场景:
- 用户申请生成店铺码(一个用户可以有多个店铺码)
- 打印成二维码贴在店铺收银台
- 顾客扫码购物 → 订单归属于店铺所有者 → 店主获得佣金
数据示例:
sql
-- 用户90的店铺码
INSERT INTO `pdd_storecode` VALUES (2, 'j02ucIrG', 90, 1574039033);4️⃣ 晋升与等级表(Upgrade System)
pdd_upgrade - 晋升规则表
定义不同等级的晋升条件。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
level_id | int(11) | 目标等级 ID |
money | decimal(11,2) | 考核金额(累计佣金要求) |
createtime | bigint(20) | 政策创建时间 |
现行晋升标准:
sql
INSERT INTO `pdd_upgrade` VALUES (6, 2, 100.00, 12121); -- 合伙人:累计佣金≥100元
INSERT INTO `pdd_upgrade` VALUES (7, 3, 500.00, 121211); -- 高级总监:累计佣金≥500元等级体系:
- level_id = 0:普通用户(默认)
- level_id = 1:未使用(可能是预留等级)
- level_id = 2:合伙人(Partner)
- level_id = 3:高级总监(Senior Director)/ 市代理
晋升机制:
- 系统定时计算用户累计佣金(
pdd_money表money_type=2的金额总和) - 满足条件自动晋升,写入
pdd_upgrade_list记录 - 更新
pdd_user.level_id和upgrade_time
pdd_upgrade_list - 晋升记录表
记录用户的晋升历史。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
uid | int(11) | 用户 ID |
level_id | int(11) | 晋升到的等级 |
upgrade_time | bigint(20) | 晋升时间 |
pre_fee | decimal(20,4) | 30天预估收益(考核指标) |
money | decimal(20,4) | 考核金额 |
数据示例:
sql
-- 用户3晋升为合伙人
INSERT INTO `pdd_upgrade_list` VALUES (2, 3, 2, 1573936621, 1.2540, 100.0000);
-- 30天预估收益: 1.254元, 考核金额: 100元
-- 用户3降级为普通用户(level_id=0)
INSERT INTO `pdd_upgrade_list` VALUES (4, 3, 0, 1576615021, null, 100.0000);注意事项:
- 数据中存在降级记录(
level_id=0),可能由于违规或主动申请 pre_fee字段用于考核活跃度,但部分记录为 null
5️⃣ 内容管理表(Content Management)
pdd_banner - 轮播图表
首页轮播图配置。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
title | varchar(200) | 标题 |
url | varchar(255) | 点击跳转链接 |
pic | varchar(255) | 图片 URL |
pdd_act - 活动入口表
首页展示的特色活动入口(如 1.9包邮、今日爆款)。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
title | varchar(200) | 活动标题 |
pic | varchar(255) | 图标 URL |
sid | tinyint(4) | 活动类型(0=1.9包邮/1=今日爆款/2=品牌清仓) |
hpic | varchar(255) | 头部背景图 |
预设活动:
sql
INSERT INTO `pdd_act` VALUES (1, '1.9包邮', '.../4.png', 0, '.../8.jpg');
INSERT INTO `pdd_act` VALUES (2, '今日爆款', '.../3.png', 1, '.../7.jpg');
INSERT INTO `pdd_act` VALUES (3, '品牌清仓', '.../2.png', 2, '.../6.jpg');
INSERT INTO `pdd_act` VALUES (4, '实时热销', '.../1.png', 1, '.../5.jpg');pdd_bg - 背景图表
可能用于页面装饰或主题切换。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
pic | varchar(255) | 图片路径 |
pic1 | varchar(255) | 备用图片路径 |
px | tinyint(4) | 排序 |
createtime | bigint(20) | 添加时间 |
pdd_question - 常见问题表
问答中心内容。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
title | varchar(200) | 问题标题 |
content | text | 答案内容(支持富文本) |
sort_id | int(11) | 分类 ID(关联 pdd_fl) |
create_time | bigint(20) | 创建时间 |
pdd_fl - 问题分类表
问答分类目录。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
sort_name | varchar(50) | 分类名称 |
预设分类:
- 订单相关
- 优惠相关
- 收益相关
- 提现相关
- 分享相关
- 其他问题
pdd_hotword - 热搜词表
首页搜索框下方的热门搜索词。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
word | varchar(100) | 热搜关键词 |
create_time | bigint(20) | 创建时间 |
pdd_search - 搜索记录表
记录用户的搜索行为,用于数据分析和热词统计。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
keyword | varchar(100) | 搜索关键词 |
uid | int(11) | 用户 ID |
create_time | bigint(20) | 搜索时间 |
6️⃣ 支付相关表(Payment)
pdd_pay - 支付订单表
通用支付订单表(目前无数据,可能功能未启用)。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
order_id | varchar(100) | 系统订单号 |
trade_id | varchar(100) | 第三方支付订单号 |
user_id | int(11) | 支付用户 ID |
pay_id | tinyint(4) | 支付方式(0支付宝/1微信) |
money | decimal(11,2) | 支付金额 |
status | tinyint(4) | 支付状态(0未支付/1已支付) |
pay_time | bigint(20) | 支付时间 |
create_time | bigint(20) | 订单创建时间 |
pdd_pay_points - 积分购买订单表
用户购买积分的订单记录。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
orderid | varchar(50) | 订单 ID |
tradeid | varchar(50) | 支付宝交易号 |
uid | int(11) | 购买用户 ID |
points | decimal(11,2) | 购买积分数 |
money | decimal(11,2) | 支付金额 |
createtime | bigint(20) | 生成时间 |
paytime | bigint(20) | 支付时间 |
status | tinyint(4) | 支付状态(0未支付/1已支付) |
积分价格: 1 元 = 1 积分
数据示例:
sql
-- 用户91购买68积分
INSERT INTO `pdd_pay_points` VALUES
(38, '82531574065023912482', null, 91, 68.00, 68.00, 1574065023, null, 0);
-- status=0(未支付)注意: 数据中所有订单均未支付(status=0),功能可能未正式上线。
pdd_points - 积分流水表
记录积分的增加和消耗。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
uid | int(11) | 用户 ID |
points | int(11) | 积分变动(正数增加/负数消耗) |
orderid | int(11) | 关联订单 ID |
tag | tinyint(4) | 操作类型(0消耗/1增加) |
createtime | bigint(20) | 时间 |
数据示例:
sql
-- 用户3初始积分
INSERT INTO `pdd_points` VALUES (31, 3, 100000, null, null, null);
-- 消耗3000积分
INSERT INTO `pdd_points` VALUES (32, 3, -3000, 14, 0, 1572076841);7️⃣ 物料与商品表(Material & Product)
pdd_material - 物料活动表
存储促销活动信息。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
mat_name | varchar(100) | 物料名称 |
mat_start_time | bigint(20) | 活动开始时间 |
mat_end_time | bigint(20) | 活动结束时间 |
status | tinyint(4) | 活动状态 |
pdd_material_goods - 物料商品关联表
活动关联的商品列表。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
mat_id | int(11) | 物料 ID |
goods_id | varchar(50) | 商品 ID |
goods_name | varchar(200) | 商品名称 |
goods_pic | varchar(255) | 商品图片 |
goods_price | decimal(10,2) | 商品价格 |
pdd_material_order - 物料订单表
参与活动的订单记录。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
mat_goods_id | int(11) | 物料商品 ID |
user_id | int(11) | 用户 ID |
order_num | varchar(100) | 订单号 |
status | tinyint(4) | 订单状态 |
create_time | bigint(20) | 创建时间 |
8️⃣ 批次管理表(Batch Management)
pdd_batch - 拉新批次表
记录批量拉新活动。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
batch_name | varchar(200) | 批次名称(日期格式:YYYYMMDD) |
num | int(11) | 拉新目标数量 |
create_time | bigint(20) | 创建时间 |
数据示例:
sql
INSERT INTO `pdd_batch` VALUES (1, '20191115', 10, 1573802947); -- 2019年11月15日批次,目标10人
INSERT INTO `pdd_batch` VALUES (2, '20191118', 10, 1574046349);pdd_pullorder - 拉新订单表
记录拉新活动中的邀请关系(数据量极大,约 22.9 万条记录)。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
batch_id | int(11) | 批次 ID |
uid | int(11) | 被邀请用户 ID |
inviter_uid | int(11) | 邀请人用户 ID |
create_time | bigint(20) | 创建时间 |
status | tinyint(4) | 状态 |
用途: 用于拉新活动的数据统计和奖励发放。
9️⃣ 购物车相关表(Shopping Cart)
pdd_cart - 购物车主表
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
uid | int(11) | 用户 ID |
zpoints | int(11) | 所需积分 |
znum | int(11) | 商品总数量 |
createtime | bigint(20) | 创建时间 |
pdd_cart_goods - 购物车商品表
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
cartid | int(11) | 购物车 ID |
goodsid | int(11) | 商品 ID |
num | int(11) | 数量 |
注意: 这两张表似乎用于积分兑换商城,与主流程(淘宝客订单)脱节,实际使用情况不明确。
🔟 系统管理表(System Admin)
pdd_admin - 管理员表
后台管理系统的管理员账号。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
username | varchar(50) | 用户名 |
password | varchar(50) | 密码(MD5 加密) |
默认账号:
sql
INSERT INTO `pdd_admin` VALUES (1, 'duoduobao', '94b06ab80d1573af035129e2f057db13');安全建议:
- 使用更强的密码哈希算法(如 bcrypt、Argon2)
- 添加账号状态、最后登录时间等字段
- 支持多管理员角色权限
pdd_sort - 商品分类表
存储拼多多商品类目(用于首页分类展示)。
| 字段 | 类型 | 说明 |
|---|---|---|
id | int(11) | 主键 |
opt_id | varchar(50) | 拼多多类目 ID |
opt_name | varchar(100) | 类目名称 |
parent_id | int(11) | 父类目 ID(支持多级分类) |
xx_code / xx_token - 未知表
这两张表前缀为 xx_,与其他表不一致,可能是测试表或临时表。
📈 核心业务流程总结
1. 用户注册与推广链路
新用户扫码/输入邀请码
→ 注册(pdd_user)
→ 分配推广位(relation_id)
→ 生成邀请码(invitation_code)
→ 建立邀请关系(inviter_user_id)2. 订单佣金分成流程
用户点击商品 → 拼多多下单 → 订单同步(pdd_order)
→ 计算佣金(commission)
→ 订单结算(tk_status=14)
→ 三级分润(pdd_money):
├─ 推广者佣金 (money_type=2, 60%)
├─ 上级提成 (money_type=3, 20%)
├─ 上上级提成 (money_type=3, 10%)
└─ 地区代理分成 (money_type=2, 10%)3. 提现流程
用户申请提现
→ 创建提现订单(pdd_withdraw, status=0)
→ 扣减余额(pdd_money, money_type=6, count=-金额)
→ 管理员审核
→ 调用微信企业付款到零钱 API
→ 成功: status=1, trade_id=微信付款单号
→ 失败: status=2, msg=失败原因, 退回余额4. 晋升机制
用户持续推广
→ 累计佣金统计(pdd_money, money_type=2)
→ 满足条件(pdd_upgrade规则)
→ 自动晋升:
├─ 累计100元 → 合伙人(level_id=2)
├─ 累计500元 → 高级总监(level_id=3)
└─ 申请审核 → 市代理(pdd_apply)
→ 记录晋升(pdd_upgrade_list)
→ 更新用户等级(pdd_user.level_id)🔍 数据库设计评价
✅ 优点
- 业务完整性高:覆盖了用户、订单、收益、提现、代理等完整业务链路
- 层级关系清晰:通过外键关联构建了用户邀请树、地区代理树
- 资金流水详细:
pdd_money表详细记录了所有资金变动,便于对账和审计 - 扩展性强:预留了积分系统、物料活动等扩展功能
⚠️ 问题与改进建议
1. 数据冗余
- 问题:
pdd_money表同时存储了用户信息(city_code)和代理信息(town/district/city),造成冗余 - 建议:通过
user_id关联pdd_user表获取地区信息
2. 索引优化
- 问题:未见显式创建索引(除主键外)
- 建议:为高频查询字段添加索引:sql
-- 用户表 CREATE INDEX idx_invitation_code ON pdd_user(invitation_code); CREATE INDEX idx_inviter_user_id ON pdd_user(inviter_user_id); CREATE INDEX idx_relation_id ON pdd_user(relation_id); -- 订单表 CREATE INDEX idx_trade_id ON pdd_order(trade_id); CREATE INDEX idx_user_id_status ON pdd_order(user_id, tk_status); -- 资金流水表 CREATE INDEX idx_user_id_type ON pdd_money(user_id, money_type); CREATE INDEX idx_order_num ON pdd_money(order_num); CREATE INDEX idx_settle_time ON pdd_money(settle_time);
3. 时间字段类型
- 问题:使用
bigint存储时间戳,可读性差 - 建议:改为
datetime类型,并添加默认值:sql`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
4. 安全性
- 问题:管理员密码使用 MD5 加密(已不安全)
- 建议:升级为 bcrypt 或 Argon2:php
$password = password_hash($input, PASSWORD_BCRYPT); password_verify($input, $hash);
5. 字段命名规范
- 问题:部分字段命名不一致(如
createtimevscreate_time) - 建议:统一使用下划线命名法
6. 事务一致性
- 问题:提现流程涉及多表操作,需保证原子性
- 建议:使用数据库事务:sql
START TRANSACTION; -- 创建提现记录 INSERT INTO pdd_withdraw ...; -- 扣减余额 INSERT INTO pdd_money ...; COMMIT;
7. 软删除
- 问题:缺少软删除机制
- 建议:添加
deleted_at字段(Laravel 风格)或is_deleted字段
8. 审计日志
- 问题:关键操作(如审核、转账)缺少操作人记录
- 建议:添加
operator_id、operator_name字段
🎯 数据统计
根据 SQL 文件分析:
| 统计项 | 数值 |
|---|---|
| 总表数 | 31 |
| 总记录数 | ~230,000+ |
| 用户数 | 227 |
| 订单数 | 747 |
| 提现记录 | 103 |
| 拉新记录 | ~229,000 |
| 城市代理 | 165 个城市 |
| 代理申请 | 31 条 |
📝 附录:表清单
| 序号 | 表名 | 中文名 | 记录数 |
|---|---|---|---|
| 1 | pdd_user | 用户表 | 227 |
| 2 | pdd_token | 登录令牌表 | - |
| 3 | pdd_telcode | 验证码表 | - |
| 4 | pdd_goodinvitatercode | 邀请码池 | ~200 |
| 5 | pdd_order | 多多客订单表 | 747 |
| 6 | pdd_money | 资金流水表 | ~1400 |
| 7 | pdd_withdraw | 提现记录表 | 103 |
| 8 | pdd_city | 城市代理表 | 165 |
| 9 | pdd_apply | 代理申请表 | 31 |
| 10 | pdd_storecode | 店铺码表 | 2 |
| 11 | pdd_upgrade | 晋升规则表 | 2 |
| 12 | pdd_upgrade_list | 晋升记录表 | 5 |
| 13 | pdd_banner | 轮播图表 | 1 |
| 14 | pdd_act | 活动入口表 | 4 |
| 15 | pdd_bg | 背景图表 | 5 |
| 16 | pdd_question | 常见问题表 | - |
| 17 | pdd_fl | 问题分类表 | 6 |
| 18 | pdd_hotword | 热搜词表 | - |
| 19 | pdd_search | 搜索记录表 | - |
| 20 | pdd_pay | 支付订单表 | 0 |
| 21 | pdd_pay_points | 积分购买表 | 20 |
| 22 | pdd_points | 积分流水表 | 6 |
| 23 | pdd_material | 物料活动表 | - |
| 24 | pdd_material_goods | 物料商品表 | - |
| 25 | pdd_material_order | 物料订单表 | - |
| 26 | pdd_batch | 拉新批次表 | 4 |
| 27 | pdd_pullorder | 拉新订单表 | ~229,000 |
| 28 | pdd_cart | 购物车主表 | 7 |
| 29 | pdd_cart_goods | 购物车商品表 | 11 |
| 30 | pdd_admin | 管理员表 | 1 |
| 31 | pdd_sort | 商品分类表 | - |
🔗 相关文档
文档生成时间:2025-10-09
维护人:AI Assistant
版本:v1.0