-- 为 T_Likes 表添加唯一索引
-- 防止同一用户对同一目标重复点赞

-- 检查索引是否已存在，如果不存在则创建
IF NOT EXISTS (
    SELECT 1 
    FROM sys.indexes 
    WHERE name = 'IX_T_Likes_User_Target' 
    AND object_id = OBJECT_ID('T_Likes')
)
BEGIN
    CREATE UNIQUE NONCLUSTERED INDEX IX_T_Likes_User_Target 
    ON T_Likes(UserId, TargetType, TargetId);
    
    PRINT '索引 IX_T_Likes_User_Target 创建成功';
END
ELSE
BEGIN
    PRINT '索引 IX_T_Likes_User_Target 已存在，跳过创建';
END

-- 说明：
-- 1. 此索引确保同一用户不能对同一目标（帖子或评论）重复点赞
-- 2. 唯一索引会在数据库层面防止并发导致的重复数据
-- 3. 执行此脚本前请备份数据库
-- 4. 如果表中已有重复数据，创建索引会失败，需要先清理重复数据

