feat: 功能优化
This commit is contained in:
74
sql/mysql/20241228_refactor_material_list_layout.sql
Normal file
74
sql/mysql/20241228_refactor_material_list_layout.sql
Normal file
@@ -0,0 +1,74 @@
|
||||
-- 素材列表布局重构迁移脚本
|
||||
-- Change ID: refactor-material-list-layout
|
||||
-- Date: 2025-12-28
|
||||
-- Description: 添加分组分类功能,支持混剪素材和数字人素材
|
||||
|
||||
-- =====================================
|
||||
-- 1. 为tik_file_group表添加category字段
|
||||
-- =====================================
|
||||
|
||||
ALTER TABLE tik_file_group
|
||||
ADD COLUMN category VARCHAR(20) NOT NULL DEFAULT 'MIX'
|
||||
COMMENT '分组分类: MIX(混剪素材), DIGITAL_HUMAN(数字人素材)'
|
||||
AFTER description;
|
||||
|
||||
-- =====================================
|
||||
-- 2. 创建索引优化查询性能
|
||||
-- =====================================
|
||||
|
||||
CREATE INDEX idx_file_group_user_category
|
||||
ON tik_file_group (user_id, category, deleted);
|
||||
|
||||
-- =====================================
|
||||
-- 3. 为tik_user_file表的groupId字段添加注释
|
||||
-- =====================================
|
||||
|
||||
ALTER TABLE tik_user_file
|
||||
MODIFY COLUMN group_id BIGINT NULL
|
||||
COMMENT '关联素材分组编号(关联tik_file_group.id)';
|
||||
|
||||
-- =====================================
|
||||
-- 4. 迁移现有数据(将所有现有分组设置为MIX分类)
|
||||
-- =====================================
|
||||
|
||||
UPDATE tik_file_group SET category = 'MIX' WHERE category IS NULL OR category = '';
|
||||
|
||||
-- =====================================
|
||||
-- 5. 验证迁移结果
|
||||
-- =====================================
|
||||
|
||||
SELECT category, COUNT(*) as group_count
|
||||
FROM tik_file_group
|
||||
WHERE deleted = FALSE
|
||||
GROUP BY category;
|
||||
|
||||
-- =====================================
|
||||
-- 6. 创建统计视图(可选,用于性能优化)
|
||||
-- =====================================
|
||||
|
||||
CREATE OR REPLACE VIEW v_file_group_stats AS
|
||||
SELECT
|
||||
g.id,
|
||||
g.user_id,
|
||||
g.name,
|
||||
g.category,
|
||||
g.sort,
|
||||
COUNT(f.id) as file_count
|
||||
FROM tik_file_group g
|
||||
LEFT JOIN tik_user_file f ON g.id = f.group_id AND f.deleted = FALSE
|
||||
WHERE g.deleted = FALSE
|
||||
GROUP BY g.id, g.user_id, g.name, g.category, g.sort;
|
||||
|
||||
-- =====================================
|
||||
-- 7. 按分类统计文件数量
|
||||
-- =====================================
|
||||
|
||||
SELECT
|
||||
g.category,
|
||||
COUNT(DISTINCT g.id) as group_count,
|
||||
COUNT(f.id) as file_count
|
||||
FROM tik_file_group g
|
||||
LEFT JOIN tik_user_file f ON g.id = f.group_id AND f.deleted = FALSE
|
||||
WHERE g.deleted = FALSE
|
||||
GROUP BY g.category
|
||||
ORDER BY g.category;
|
||||
Reference in New Issue
Block a user