-- ============================================
-- 用户系统重构SQL脚本（简化版 - 开发环境）
-- 根据《用户系统重构计划书》执行
-- ============================================

-- ============================================
-- 第一部分：UserAuth表唯一索引
-- ============================================

-- 确保user_auth表的(auth_type, auth_key)唯一性
-- 如果已存在同名索引，先删除
ALTER TABLE `user_auth` DROP INDEX IF EXISTS `uk_auth_type_key`;

-- 添加唯一索引
ALTER TABLE `user_auth`
ADD UNIQUE INDEX `uk_auth_type_key` (`auth_type`, `auth_key`) COMMENT '确保同一个认证方式只能绑定一个用户';

-- 允许一个用户绑定同一认证类型的多个记录（例如多个UUID）
ALTER TABLE `user_auth` DROP INDEX IF EXISTS `unique_userId_key`;
ALTER TABLE `user_auth` ADD INDEX `idx_user_id_auth_type` (`user_id`, `auth_type`);

-- ============================================
-- 第二部分：删除UserTemp表（开发环境直接删除）
-- ============================================

-- 注意：开发环境没有数据，直接删除表即可
-- 如果表不存在，会报错但可以忽略

DROP TABLE IF EXISTS `user_temp`;

-- ============================================
-- 第三部分：索引优化（可选）
-- ============================================

-- 为user_auth表添加user_id和auth_type的联合索引（如果查询频繁）
-- ALTER TABLE `user_auth`
-- ADD INDEX `idx_user_id_auth_type` (`user_id`, `auth_type`) COMMENT '优化按用户查询认证类型';

-- 为user表添加mobile的唯一索引（如果不存在）
-- ALTER TABLE `user`
-- ADD UNIQUE INDEX `uk_mobile` (`mobile`) COMMENT '确保手机号唯一性';

-- ============================================
-- 注意事项
-- ============================================
-- 1. 此脚本适用于开发环境，直接删除UserTemp表
-- 2. 如果生产环境有数据，请使用完整版迁移脚本
-- 3. 执行后，确保代码中已移除所有对UserTemp表的引用
