diff --git a/reading-platform-java/src/main/resources/db/migration/V41__optimize_association_tables.sql b/reading-platform-java/src/main/resources/db/migration/V41__optimize_association_tables.sql index 853dca8..7d6d384 100644 --- a/reading-platform-java/src/main/resources/db/migration/V41__optimize_association_tables.sql +++ b/reading-platform-java/src/main/resources/db/migration/V41__optimize_association_tables.sql @@ -13,16 +13,16 @@ -- ----------------------------------------------------- -- 说明:纯关联表,先删后增的更新模式,不需要唯一索引兜底 --- 删除联合唯一索引 -ALTER TABLE `course_collection_package` DROP INDEX IF EXISTS `uk_collection_package`; +-- 删除联合唯一索引(MySQL 不支持 IF EXISTS,直接删除) +ALTER TABLE `course_collection_package` DROP INDEX `uk_collection_package`; -- 删除 deleted 字段 -ALTER TABLE `course_collection_package` DROP COLUMN IF EXISTS `deleted`; +ALTER TABLE `course_collection_package` DROP COLUMN `deleted`; --- 保留普通索引(提高查询性能) +-- 添加普通索引(提高查询性能) ALTER TABLE `course_collection_package` -ADD INDEX IF NOT EXISTS `idx_collection_id` (`collection_id`), -ADD INDEX IF NOT EXISTS `idx_package_id` (`package_id`); +ADD INDEX `idx_collection_id` (`collection_id`), +ADD INDEX `idx_package_id` (`package_id`); -- ----------------------------------------------------- -- 2. tenant_course(租户 - 课程关联表) @@ -30,15 +30,15 @@ ADD INDEX IF NOT EXISTS `idx_package_id` (`package_id`); -- 说明:纯关联表,授权关系,不需要唯一索引兜底 -- 删除联合唯一索引 -ALTER TABLE `tenant_course` DROP INDEX IF EXISTS `uk_tenant_course`; +ALTER TABLE `tenant_course` DROP INDEX `uk_tenant_course`; -- 删除 deleted 字段 -ALTER TABLE `tenant_course` DROP COLUMN IF EXISTS `deleted`; +ALTER TABLE `tenant_course` DROP COLUMN `deleted`; --- 保留普通索引 +-- 添加普通索引 ALTER TABLE `tenant_course` -ADD INDEX IF NOT EXISTS `idx_tenant_id` (`tenant_id`), -ADD INDEX IF NOT EXISTS `idx_course_id` (`course_id`); +ADD INDEX `idx_tenant_id` (`tenant_id`), +ADD INDEX `idx_course_id` (`course_id`); -- ----------------------------------------------------- -- 3. class_teacher(班级 - 教师关联表) @@ -46,24 +46,9 @@ ADD INDEX IF NOT EXISTS `idx_course_id` (`course_id`); -- 说明:纯关联表,不需要 deleted 字段 -- 删除 deleted 字段 -ALTER TABLE `class_teacher` DROP COLUMN IF EXISTS `deleted`; +ALTER TABLE `class_teacher` DROP COLUMN `deleted`; --- 保留普通索引 +-- 添加普通索引 ALTER TABLE `class_teacher` -ADD INDEX IF NOT EXISTS `idx_class_id` (`class_id`), -ADD INDEX IF NOT EXISTS `idx_teacher_id` (`teacher_id`); - --- ----------------------------------------------------- --- 备注:以下表保留联合唯一索引和 deleted 字段 --- ----------------------------------------------------- --- 1. parent_student(家长 - 学生关系) --- - 关系相对稳定,有业务历史价值 --- - 保留 uk_parent_student 和 deleted 字段 --- --- 2. system_setting(系统设置) --- - 配置表,(tenant_id, setting_key) 天然应该唯一 --- - 保留 uk_tenant_key 和 deleted 字段 --- --- 3. tenant_package(租户 - 套餐授权) --- - 合同性质,有历史价值 --- - 保留 deleted 字段 +ADD INDEX `idx_class_id` (`class_id`), +ADD INDEX `idx_teacher_id` (`teacher_id`);