add_farm_user_id_fields.sql 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. -- URS用户推荐关系表添加农场用户ID字段
  2. -- 执行时间: 2025-06-19 05:10:00
  3. -- 说明: 为URS用户推荐关系表添加农场用户ID字段,用于存储用户和推荐人的农场用户ID
  4. -- 注意: 字段位置在urs_referrer_id之后,referral_time之前
  5. -- =====================================================
  6. -- 1. 为URS用户推荐关系表添加农场用户ID字段(正确位置)
  7. -- =====================================================
  8. -- 如果字段已存在但位置不正确,先删除再重新添加
  9. -- ALTER TABLE `kku_urs_promotion_user_referrals` DROP COLUMN IF EXISTS `user_id`;
  10. -- ALTER TABLE `kku_urs_promotion_user_referrals` DROP COLUMN IF EXISTS `referrer_id`;
  11. -- 添加用户农场ID字段(在urs_referrer_id之后)
  12. ALTER TABLE `kku_urs_promotion_user_referrals`
  13. ADD COLUMN `user_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '农场用户ID(可能为0)' AFTER `urs_referrer_id`;
  14. -- 添加推荐人农场ID字段(在user_id之后)
  15. ALTER TABLE `kku_urs_promotion_user_referrals`
  16. ADD COLUMN `referrer_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '推荐人的农场用户ID(可能为0)' AFTER `user_id`;
  17. -- =====================================================
  18. -- 2. 添加索引优化查询性能
  19. -- =====================================================
  20. -- 添加用户农场ID索引
  21. ALTER TABLE `kku_urs_promotion_user_referrals`
  22. ADD INDEX `idx_user_id` (`user_id`);
  23. -- 添加推荐人农场ID索引
  24. ALTER TABLE `kku_urs_promotion_user_referrals`
  25. ADD INDEX `idx_referrer_id` (`referrer_id`);
  26. -- 添加组合索引用于推荐关系查询
  27. ALTER TABLE `kku_urs_promotion_user_referrals`
  28. ADD INDEX `idx_user_referrer` (`user_id`, `referrer_id`);
  29. -- =====================================================
  30. -- 3. 验证表结构
  31. -- =====================================================
  32. -- 查看表结构确认修改
  33. DESCRIBE `kku_urs_promotion_user_referrals`;
  34. -- 显示索引信息
  35. SHOW INDEX FROM `kku_urs_promotion_user_referrals`;
  36. -- =====================================================
  37. -- 4. 数据初始化说明
  38. -- =====================================================
  39. -- 注意:根据用户要求,不做兼容处理,没有历史数据
  40. -- 新字段默认值为0,表示尚未绑定农场用户
  41. -- 用户进入农场后,需要批量更新这些字段
  42. -- 示例更新语句(实际使用时需要在服务层实现):
  43. -- UPDATE `kku_urs_promotion_user_referrals` r
  44. -- INNER JOIN `kku_urs_promotion_user_mappings` um ON r.urs_user_id = um.urs_user_id
  45. -- INNER JOIN `kku_urs_promotion_user_mappings` rm ON r.urs_referrer_id = rm.urs_user_id
  46. -- SET
  47. -- r.user_id = um.user_id,
  48. -- r.referrer_id = rm.user_id
  49. -- WHERE r.status = 1
  50. -- AND um.status = 1
  51. -- AND rm.status = 1;