-- URS用户推荐关系表添加农场用户ID字段
-- 执行时间: 2025-06-19 05:10:00
-- 说明: 为URS用户推荐关系表添加农场用户ID字段，用于存储用户和推荐人的农场用户ID
-- 注意: 字段位置在urs_referrer_id之后，referral_time之前

-- =====================================================
-- 1. 为URS用户推荐关系表添加农场用户ID字段（正确位置）
-- =====================================================

-- 如果字段已存在但位置不正确，先删除再重新添加
-- ALTER TABLE `kku_urs_promotion_user_referrals` DROP COLUMN IF EXISTS `user_id`;
-- ALTER TABLE `kku_urs_promotion_user_referrals` DROP COLUMN IF EXISTS `referrer_id`;

-- 添加用户农场ID字段（在urs_referrer_id之后）
ALTER TABLE `kku_urs_promotion_user_referrals`
ADD COLUMN `user_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '农场用户ID（可能为0）' AFTER `urs_referrer_id`;

-- 添加推荐人农场ID字段（在user_id之后）
ALTER TABLE `kku_urs_promotion_user_referrals`
ADD COLUMN `referrer_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '推荐人的农场用户ID（可能为0）' AFTER `user_id`;

-- =====================================================
-- 2. 添加索引优化查询性能
-- =====================================================

-- 添加用户农场ID索引
ALTER TABLE `kku_urs_promotion_user_referrals`
ADD INDEX `idx_user_id` (`user_id`);

-- 添加推荐人农场ID索引
ALTER TABLE `kku_urs_promotion_user_referrals`
ADD INDEX `idx_referrer_id` (`referrer_id`);

-- 添加组合索引用于推荐关系查询
ALTER TABLE `kku_urs_promotion_user_referrals`
ADD INDEX `idx_user_referrer` (`user_id`, `referrer_id`);

-- =====================================================
-- 3. 验证表结构
-- =====================================================

-- 查看表结构确认修改
DESCRIBE `kku_urs_promotion_user_referrals`;

-- 显示索引信息
SHOW INDEX FROM `kku_urs_promotion_user_referrals`;

-- =====================================================
-- 4. 数据初始化说明
-- =====================================================

-- 注意：根据用户要求，不做兼容处理，没有历史数据
-- 新字段默认值为0，表示尚未绑定农场用户
-- 用户进入农场后，需要批量更新这些字段

-- 示例更新语句（实际使用时需要在服务层实现）：
-- UPDATE `kku_urs_promotion_user_referrals` r
-- INNER JOIN `kku_urs_promotion_user_mappings` um ON r.urs_user_id = um.urs_user_id
-- INNER JOIN `kku_urs_promotion_user_mappings` rm ON r.urs_referrer_id = rm.urs_user_id
-- SET 
--     r.user_id = um.user_id,
--     r.referrer_id = rm.user_id
-- WHERE r.status = 1 
--   AND um.status = 1 
--   AND rm.status = 1;
