URS推广模块包含以下核心数据表:
v3.0.0 (分离映射关系版本) 主要变更:
v3.1.0 (关系缓存优化版本) 主要变更:
URS用户映射关系表是整个URS推广系统的核心基础表,负责建立URS系统用户与农场系统用户之间的映射关系。该表实现了分离映射关系设计,使得URS推广关系可以独立于农场用户系统存在。
| 字段名 | 类型 | 长度 | 默认值 | 说明 |
|---|---|---|---|---|
| id | bigint unsigned | - | AUTO_INCREMENT | 主键ID |
| urs_user_id | bigint unsigned | - | - | URS用户ID(核心标识) |
| user_id | bigint unsigned | - | - | 农场用户ID(对应users表) |
| mapping_time | timestamp | - | CURRENT_TIMESTAMP | 映射建立时间(用户进入农场时间) |
| status | tinyint | - | 1 | 状态:1有效,0无效 |
| created_at | timestamp | - | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | timestamp | - | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
id)uk_urs_user_id (urs_user_id) - 确保一个URS用户只能映射一个农场用户uk_user_id (user_id) - 确保一个农场用户只能映射一个URS用户idx_mapping_time (mapping_time) - 支持按时间查询idx_status (status) - 支持按状态筛选业务规则:
存储URS用户与其直接推荐人的关系,是URS推广系统的核心基础表。
| 字段名 | 类型 | 长度 | 默认值 | 说明 |
|---|---|---|---|---|
| id | bigint unsigned | - | AUTO_INCREMENT | 主键ID |
| urs_user_id | bigint unsigned | - | - | URS用户ID(核心) |
| user_id | bigint unsigned | - | - | 农场用户ID(辅助) |
| urs_referrer_id | bigint unsigned | - | - | URS推荐人ID(核心) |
| referrer_id | bigint unsigned | - | - | 农场推荐人ID(辅助) |
| referral_code | varchar | 32 | NULL | 使用的推荐码(历史记录) |
| referral_time | timestamp | - | CURRENT_TIMESTAMP | 推荐时间 |
| status | tinyint | - | 1 | 状态:1有效,0无效 |
| created_at | timestamp | - | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | timestamp | - | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
id)uk_urs_user_id (urs_user_id)uk_user_id (user_id)idx_urs_referrer_id (urs_referrer_id)idx_referrer_id (referrer_id)idx_referral_code (referral_code)idx_referral_time (referral_time)idx_status (status)URS用户关系缓存表用于存储URS用户的多级推荐关系缓存,提升查询性能。该表预计算并存储用户的所有上级关系,避免在收益分发时进行递归查询。
| 字段名 | 类型 | 长度 | 默认值 | 说明 |
|---|---|---|---|---|
| id | bigint unsigned | - | AUTO_INCREMENT | 主键ID |
| user_id | bigint | - | - | 农场用户ID |
| related_user_id | bigint | - | - | 关联农场用户ID(上级) |
| urs_user_id | bigint | - | - | URS用户ID |
| urs_related_user_id | bigint | - | - | 关联URS用户ID(上级) |
| level | tinyint unsigned | - | - | 关系层级:1直接,2间接 |
| path | varchar | 255 | - | 关系路径,格式:1,2,3(农场用户ID) |
| urs_path | varchar | 255 | - | URS关系路径,格式:1,2,3(URS用户ID) |
| depth | tinyint unsigned | - | - | 层级深度,从1开始 |
| created_at | timestamp | - | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | timestamp | - | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
id)idx_user_relation (user_id,related_user_id)idx_urs_user_relation (urs_user_id,urs_related_user_id)idx_user_id (user_id)idx_related_user_id (related_user_id)idx_urs_user_id (urs_user_id)idx_urs_related_user_id (urs_related_user_id)idx_level (level)idx_depth (depth)设计特点:
存储URS用户的达人等级信息和团队统计数据。
| 字段名 | 类型 | 长度 | 默认值 | 说明 |
|---|---|---|---|---|
| id | bigint unsigned | - | AUTO_INCREMENT | 主键ID |
| urs_user_id | bigint unsigned | - | - | URS用户ID(核心) |
| user_id | bigint unsigned | - | - | 农场用户ID(辅助) |
| talent_level | tinyint | - | 0 | URS达人等级:0无,1初级,2中级,3高级,4资深,5顶级 |
| direct_count | int | - | 0 | 直推人数 |
| indirect_count | int | - | 0 | 间推人数 |
| third_count | int | - | 0 | 三推人数 |
| promotion_count | int | - | 0 | 团队总人数 |
| last_level_update_time | timestamp | - | NULL | 最后等级更新时间 |
| created_at | timestamp | - | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | timestamp | - | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
id)uk_urs_user_id (urs_user_id)uk_user_id (user_id)idx_talent_level (talent_level)idx_direct_count (direct_count)idx_promotion_count (promotion_count)记录URS团队收益分成的详细信息。
| 字段名 | 类型 | 长度 | 默认值 | 说明 |
|---|---|---|---|---|
| id | bigint unsigned | - | AUTO_INCREMENT | 主键ID |
| urs_user_id | bigint unsigned | - | - | 获得收益的URS用户ID(核心) |
| urs_promotion_member_id | bigint unsigned | - | - | 产生收益的URS用户ID(核心) |
| promotion_member_farm_user_id | bigint unsigned | - | NULL | 产生收益的农场用户ID |
| source_id | bigint unsigned | - | - | 收益来源ID |
| source_type | varchar | 32 | - | 收益来源类型 |
| profit_type | varchar | 32 | - | 收益类型:promotion_reward推广收益,planting_reward种植收益 |
| relation_level | tinyint | - | 1 | 推荐层级:1直推,2间推,3三推 |
| original_amount | decimal | 30,10 | 0.0000000000 |
原始收益金额(种植收益时使用) |
| profit_amount | decimal | 30,10 | 0.0000000000 |
获得收益金额 |
| profit_rate | decimal | 8,6 | 0.000000 | 分成比例(种植收益时使用) |
| reward_group_id | int | - | NULL | 奖励组ID(推广收益时使用) |
| talent_level | tinyint | - | 0 | 获得收益时的达人等级 |
| farm_user_id | bigint unsigned | - | NULL | 获得收益的农场用户ID(冗余字段,便于查询) |
| status | tinyint | - | 1 | 状态:1正常,0取消 |
| created_at | timestamp | - | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | timestamp | - | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
id)idx_urs_user_id (urs_user_id)idx_urs_promotion_member_id (urs_promotion_member_id)idx_promotion_member_farm_user_id (promotion_member_farm_user_id)idx_farm_user_id (farm_user_id)idx_source (source_type,source_id)idx_profit_type (profit_type)idx_relation_level (relation_level)idx_created_at (created_at)idx_status (status)配置URS达人等级的要求和权益。
| 字段名 | 类型 | 长度 | 默认值 | 说明 |
|---|---|---|---|---|
| id | bigint unsigned | - | AUTO_INCREMENT | 主键ID |
| level | tinyint | - | - | 等级:0无,1初级,2中级,3高级,4资深,5顶级 |
| name | varchar | 32 | - | 等级名称 |
| direct_count_required | int | - | 0 | 所需直推人数 |
| promotion_count_required | int | - | 0 | 所需团队总人数 |
| promotion_direct_group | int | - | 0 | 直推奖励组ID |
| promotion_indirect_group | int | - | 0 | 间推奖励组ID |
| promotion_third_group | int | - | 0 | 三推奖励组ID |
| planting_direct_rate | decimal | 5,4 | 0.0000 | 直推分成比例 |
| planting_indirect_rate | decimal | 5,4 | 0.0000 | 间推分成比例 |
| planting_third_rate | decimal | 5,4 | 0.0000 | 三推分成比例 |
| icon | varchar | 255 | NULL | 等级图标 |
| description | text | - | NULL | 等级描述 |
| sort_order | int | - | 0 | 排序权重 |
| status | tinyint | - | 1 | 状态:1启用,0禁用 |
| created_at | timestamp | - | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | timestamp | - | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
id)uk_level (level)idx_sort_order (sort_order)idx_status (status)收益配置说明:
promotion_direct_group: 直推奖励组ID,0表示无奖励promotion_indirect_group: 间推奖励组ID,0表示无奖励promotion_third_group: 三推奖励组ID,0表示无奖励planting_direct_rate: 直推分成比例,小数形式,如0.05表示5%planting_indirect_rate: 间推分成比例,小数形式,如0.03表示3%planting_third_rate: 三推分成比例,小数形式,如0.01表示1%INSERT INTO `kku_urs_promotion_talent_configs` (
`level`,
`name`,
`direct_count_required`,
`promotion_count_required`,
`promotion_reward_rates`,
`planting_reward_rates`,
`description`,
`sort_order`,
`status`
) VALUES
-- 0级:非达人
(0, '非达人', 0, 0,
'{"1": 0, "2": 0, "3": 0}',
'{"1": 0, "2": 0, "3": 0}',
'普通用户,无达人等级,无推广收益', 0, 1),
-- 1级:初级达人
(1, 'URS初级达人', 3, 5,
'{"1": 0.05, "2": 0.02, "3": 0.01}',
'{"1": 0.03, "2": 0.01, "3": 0.005}',
'初级达人,享有基础推广收益', 1, 1),
-- 2级:中级达人
(2, 'URS中级达人', 8, 15,
'{"1": 0.08, "2": 0.04, "3": 0.02}',
'{"1": 0.05, "2": 0.02, "3": 0.01}',
'中级达人,享有更高推广收益', 2, 1),
-- 3级:高级达人
(3, 'URS高级达人', 15, 30,
'{"1": 0.12, "2": 0.06, "3": 0.03}',
'{"1": 0.08, "2": 0.04, "3": 0.02}',
'高级达人,享有优质推广收益', 3, 1),
-- 4级:资深达人
(4, 'URS资深达人', 30, 80,
'{"1": 0.15, "2": 0.08, "3": 0.04}',
'{"1": 0.10, "2": 0.05, "3": 0.025}',
'资深达人,享有专业推广收益', 4, 1),
-- 5级:顶级达人
(5, 'URS顶级达人', 50, 150,
'{"1": 0.20, "2": 0.10, "3": 0.05}',
'{"1": 0.15, "2": 0.08, "3": 0.04}',
'顶级达人,享有最高推广收益', 5, 1);
promotion_member_farm_user_id字段,用于记录产生收益的农场用户ID备注: 本数据库设计专门为URS推广模块设计,与Promotion模块完全独立,使用不同的表名前缀以避免冲突。