Files
QYZH.InteractiveMagazine/SqlMigrations/pet_module_optimization.sql

34 lines
1.8 KiB
MySQL
Raw Normal View History

-- ========================================
-- 宠物模块数据结构优化迁移脚本
-- 执行前请备份相关表数据
-- ========================================
-- 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.Id0表示默认皮肤',
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='宠物皮肤图片表';