-- =====================================================
-- 投票模型从"每日额度"切换为"终身 12 票 + 每艺人 1 票"
-- 生成时间: 2026-05-15
-- 影响: votes 表
-- =====================================================

-- 1. 先加唯一约束:每个用户对每个艺人最多 1 票(DB 层硬约束)
--    生产探查确认零重复 (userId, artistId),加约束不会失败
--    leading column 是 user_id,可作为 FK(votes.user_id → users.id)的索引基础
ALTER TABLE `votes` ADD UNIQUE INDEX `votes_user_id_artist_id_key` (`user_id`, `artist_id`);

-- 2. 删除旧的非唯一复合索引(userId, artistId, createdAt)
--    新 unique 索引以 user_id 开头,已经能满足 FK 约束的 leading 索引要求
ALTER TABLE `votes` DROP INDEX `votes_user_id_artist_id_created_at_idx`;

-- =====================================================
-- 回滚 SQL(如需撤销)
-- ALTER TABLE `votes` ADD INDEX `votes_user_id_artist_id_created_at_idx` (`user_id`, `artist_id`, `created_at`);
-- ALTER TABLE `votes` DROP INDEX `votes_user_id_artist_id_key`;
-- =====================================================
