-- ======================================== -- 宠物模块数据结构优化迁移脚本 -- 执行前请备份相关表数据 -- ======================================== -- 1. 修改 Pet 表:CurrentEvolutionId int → bigint ALTER TABLE Pet MODIFY COLUMN CurrentEvolutionId BIGINT NOT NULL DEFAULT 0; -- 2. 修改 PetEvolution 表:PreviousEvolutionId int → bigint, 删除 ImageUrl ALTER TABLE PetEvolution MODIFY COLUMN PreviousEvolutionId BIGINT NULL; ALTER TABLE PetEvolution DROP COLUMN ImageUrl; -- 3. 修改 PetSkin 表:删除 ImageUrl 和 ProductId ALTER TABLE PetSkin DROP COLUMN ImageUrl; ALTER TABLE PetSkin DROP COLUMN ProductId; -- 4. 新建 PetSkinImage 表(每个皮肤在每个进化阶段下有一组有序图片) CREATE TABLE IF NOT EXISTS PetSkinImage ( Id BIGINT NOT NULL PRIMARY KEY COMMENT '主键(雪花ID)', SkinId BIGINT NOT NULL COMMENT '皮肤Id,关联PetSkin.Id(0表示默认皮肤)', EvolutionStageId BIGINT NOT NULL COMMENT '进化阶段Id,关联PetEvolution.Id', ImageUrl VARCHAR(500) NOT NULL COMMENT '图片地址', SortOrder INT NOT NULL DEFAULT 0 COMMENT '图片顺序(动画帧序号)', Type VARCHAR(50) NOT NULL DEFAULT 'Normal' COMMENT '图片类型: Normal, Special', Status INT NOT NULL DEFAULT 0 COMMENT '基础状态', IsDeleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除', CreatedBy VARCHAR(100) NULL COMMENT '创建人', CreatedAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', UpdatedBy VARCHAR(100) NULL COMMENT '更新人', UpdatedAt DATETIME NULL COMMENT '更新时间', INDEX idx_skin_evolution (SkinId, EvolutionStageId), INDEX idx_sort (SkinId, EvolutionStageId, SortOrder) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='宠物皮肤图片表';