• yangjianbo's avatar
    fix(数据层): 修复软删除与唯一约束冲突问题 · 59269dc1
    yangjianbo authored
    问题:软删除的记录仍占用唯一约束位置,导致删后无法重建同名/同邮箱/同订阅
    
    修复方案:使用 PostgreSQL 部分唯一索引(WHERE deleted_at IS NULL)
    - User.email: 移除字段级 Unique(),改用部分唯一索引
    - Group.name: 移除字段级 Unique(),改用部分唯一索引
    - UserSubscription.(user_id, group_id): 移除组合唯一索引,改用部分唯一索引
    - ApiKey.key: 保留普通唯一约束(安全考虑,已删除的 Key 不应重用)
    
    安全性:
    - 应用层已有 ExistsByXxx 检查,自动过滤软删除记录
    - 数据库层部分唯一索引提供最后一道防线
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code
    
    )
    Co-Authored-By: default avatarClaude Opus 4.5 <noreply@anthropic.com>
    59269dc1
user_subscription.go 3 KB