-- V2: 为 sys_user 表添加唯一约束
-- 执行时间：2026-03-13

-- 1. 先清理可能存在的重复数据（保留 ID 最小的记录）
-- 删除重复的用户名（保留 id 最小的）
DELETE FROM sys_user 
WHERE id NOT IN (
    SELECT id FROM (
        SELECT MIN(id) as id
        FROM sys_user
        WHERE username IS NOT NULL
        GROUP BY username
    ) as tmp
);

-- 删除重复的邮箱（保留 id 最小的）
DELETE FROM sys_user 
WHERE id NOT IN (
    SELECT id FROM (
        SELECT MIN(id) as id
        FROM sys_user
        WHERE email IS NOT NULL
        GROUP BY email
    ) as tmp
);

-- 2. 为 username 添加唯一约束
ALTER TABLE sys_user 
ADD CONSTRAINT uk_username UNIQUE (username);

-- 3. 为 email 添加唯一约束
ALTER TABLE sys_user 
ADD CONSTRAINT uk_email UNIQUE (email);

-- 4. 为 phone 添加索引（不唯一，因为可能有没有手机号的情况）
CREATE INDEX idx_phone ON sys_user(phone);

-- 5. 为 role_type 和 status 添加索引，优化查询性能
CREATE INDEX idx_role_type ON sys_user(role_type);
CREATE INDEX idx_status ON sys_user(status);
