创建时间: 2025年06月14日 18:38
文档类型: 数据库设计
关联任务: URS推广模块创建规划
URS推广模块包含以下核心数据表:
存储URS用户与其直接推荐人的关系,是URS推广系统的核心基础表。
CREATE TABLE `kku_urs_promotion_user_referrals` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint unsigned NOT NULL COMMENT '用户ID',
`referrer_id` bigint unsigned NOT NULL COMMENT '推荐人ID',
`referral_code` varchar(32) DEFAULT NULL COMMENT '使用的推荐码',
`referral_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '推荐时间',
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:1有效,0无效',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_id` (`user_id`),
KEY `idx_referrer_id` (`referrer_id`),
KEY `idx_referral_code` (`referral_code`),
KEY `idx_referral_time` (`referral_time`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS用户推荐关系表';
存储URS用户的达人等级信息和团队统计数据。
CREATE TABLE `kku_urs_promotion_user_talents` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint unsigned NOT NULL COMMENT '用户ID',
`talent_level` tinyint NOT NULL DEFAULT '0' COMMENT '达人等级:0无,1初级,2中级,3高级,4资深,5顶级',
`direct_count` int NOT NULL DEFAULT '0' COMMENT '直推人数',
`promotion_count` int NOT NULL DEFAULT '0' COMMENT '团队总人数',
`last_level_update_time` timestamp NULL DEFAULT NULL COMMENT '最后等级更新时间',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_id` (`user_id`),
KEY `idx_talent_level` (`talent_level`),
KEY `idx_direct_count` (`direct_count`),
KEY `idx_promotion_count` (`promotion_count`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS达人等级表';
记录URS团队收益分成的详细信息。
CREATE TABLE `kku_urs_promotion_profits` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint unsigned NOT NULL COMMENT '获得收益的用户ID',
`promotion_member_id` bigint unsigned NOT NULL COMMENT '团队成员ID(产生收益的用户)',
`source_id` bigint unsigned NOT NULL COMMENT '收益来源ID',
`source_type` varchar(32) NOT NULL COMMENT '收益来源类型',
`relation_type` varchar(16) NOT NULL COMMENT '关系类型:direct直推,indirect间推',
`relation_level` tinyint NOT NULL DEFAULT '1' COMMENT '推荐层级:1直推,2-20间推',
`original_amount` decimal(30,10) NOT NULL DEFAULT '0.0000000000' COMMENT '原始收益金额',
`profit_amount` decimal(30,10) NOT NULL DEFAULT '0.0000000000' COMMENT '分成收益金额',
`profit_rate` decimal(8,6) NOT NULL DEFAULT '0.000000' COMMENT '分成比例',
`talent_level` tinyint NOT NULL DEFAULT '0' COMMENT '获得收益时的达人等级',
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:1正常,0取消',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_promotion_member_id` (`promotion_member_id`),
KEY `idx_source` (`source_type`,`source_id`),
KEY `idx_relation_type` (`relation_type`),
KEY `idx_relation_level` (`relation_level`),
KEY `idx_created_at` (`created_at`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS团队收益记录表';
管理URS用户的推荐码信息。
CREATE TABLE `kku_urs_promotion_referral_codes` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint unsigned NOT NULL COMMENT '用户ID',
`code` varchar(32) NOT NULL COMMENT '推荐码',
`type` varchar(16) NOT NULL DEFAULT 'default' COMMENT '推荐码类型:default默认,custom自定义',
`usage_count` int NOT NULL DEFAULT '0' COMMENT '使用次数',
`max_usage` int NOT NULL DEFAULT '0' COMMENT '最大使用次数,0为无限制',
`expire_time` timestamp NULL DEFAULT NULL COMMENT '过期时间,NULL为永不过期',
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:1启用,0禁用',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_code` (`code`),
KEY `idx_user_id` (`user_id`),
KEY `idx_type` (`type`),
KEY `idx_status` (`status`),
KEY `idx_expire_time` (`expire_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS推荐码表';
配置URS达人等级的要求和权益。
CREATE TABLE `kku_urs_promotion_talent_configs` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`level` tinyint NOT NULL COMMENT '等级:0无,1初级,2中级,3高级,4资深,5顶级',
`name` varchar(32) NOT NULL COMMENT '等级名称',
`direct_count_required` int NOT NULL DEFAULT '0' COMMENT '所需直推人数',
`promotion_count_required` int NOT NULL DEFAULT '0' COMMENT '所需团队总人数',
`profit_rate` decimal(8,6) NOT NULL DEFAULT '0.000000' COMMENT '间推分成比例',
`benefits` json DEFAULT NULL COMMENT '等级权益JSON',
`icon` varchar(255) DEFAULT NULL COMMENT '等级图标',
`description` text COMMENT '等级描述',
`sort_order` int NOT NULL DEFAULT '0' COMMENT '排序权重',
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:1启用,0禁用',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_level` (`level`),
KEY `idx_sort_order` (`sort_order`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS达人等级配置表';
配置不同收益来源的分成规则。
CREATE TABLE `kku_urs_promotion_profit_rules` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`source_type` varchar(32) NOT NULL COMMENT '收益来源类型',
`name` varchar(64) NOT NULL COMMENT '规则名称',
`direct_profit_rate` decimal(8,6) NOT NULL DEFAULT '0.050000' COMMENT '直推分成比例',
`max_indirect_level` tinyint NOT NULL DEFAULT '20' COMMENT '最大间推层级',
`min_amount` decimal(30,10) NOT NULL DEFAULT '0.0000000000' COMMENT '最小分成金额',
`max_amount` decimal(30,10) NOT NULL DEFAULT '0.0000000000' COMMENT '最大分成金额,0为无限制',
`rules` json DEFAULT NULL COMMENT '扩展规则JSON',
`description` text COMMENT '规则描述',
`sort_order` int NOT NULL DEFAULT '0' COMMENT '排序权重',
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:1启用,0禁用',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_source_type` (`source_type`),
KEY `idx_status` (`status`),
KEY `idx_sort_order` (`sort_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS收益分成规则表';
INSERT INTO `kku_urs_promotion_talent_configs` (`level`, `name`, `direct_count_required`, `promotion_count_required`, `profit_rate`, `sort_order`) VALUES
(0, '非达人', 0, 0, 0.000000, 0),
(1, 'URS初级达人', 5, 10, 0.010000, 1),
(2, 'URS中级达人', 10, 30, 0.015000, 2),
(3, 'URS高级达人', 20, 100, 0.020000, 3),
(4, 'URS资深达人', 50, 300, 0.025000, 4),
(5, 'URS顶级达人', 100, 1000, 0.030000, 5);
INSERT INTO `kku_urs_promotion_profit_rules` (`source_type`, `name`, `direct_profit_rate`, `max_indirect_level`, `sort_order`) VALUES
('urs_farm_harvest', 'URS农场收获', 0.050000, 20, 1),
('urs_task_complete', 'URS任务完成', 0.030000, 10, 2),
('urs_item_sell', 'URS物品出售', 0.020000, 5, 3);
备注: 本数据库设计基于Promotion模块的成熟架构,针对URS业务场景进行了优化和定制。