Files
MuMuAINovel/backend/scripts/create_regeneration_tables.sql
T

74 lines
3.0 KiB
SQL
Raw Normal View History

-- 创建章节重新生成任务表
-- 用于支持根据AI分析建议重新生成章节内容的功能
-- 创建重新生成任务表
CREATE TABLE IF NOT EXISTS regeneration_tasks (
id VARCHAR(36) PRIMARY KEY,
chapter_id VARCHAR(36) NOT NULL,
analysis_id VARCHAR(36),
user_id VARCHAR(100) NOT NULL,
project_id VARCHAR(36) NOT NULL,
-- 修改指令
modification_instructions TEXT NOT NULL,
original_suggestions JSON,
selected_suggestion_indices JSON,
custom_instructions TEXT,
-- 生成配置
style_id INTEGER,
target_word_count INTEGER DEFAULT 3000,
focus_areas JSON,
preserve_elements JSON,
-- 任务状态
status VARCHAR(20) DEFAULT 'pending',
progress INTEGER DEFAULT 0,
error_message TEXT,
-- 内容数据
original_content TEXT,
original_word_count INTEGER,
regenerated_content TEXT,
regenerated_word_count INTEGER,
-- 版本信息
version_number INTEGER DEFAULT 1,
version_note TEXT,
-- 时间戳
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
started_at TIMESTAMP,
completed_at TIMESTAMP,
-- 外键约束
CONSTRAINT fk_regeneration_chapter FOREIGN KEY (chapter_id) REFERENCES chapters(id) ON DELETE CASCADE,
CONSTRAINT fk_regeneration_project FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE,
CONSTRAINT fk_regeneration_analysis FOREIGN KEY (analysis_id) REFERENCES analysis_tasks(id) ON DELETE SET NULL,
CONSTRAINT fk_regeneration_style FOREIGN KEY (style_id) REFERENCES writing_styles(id) ON DELETE SET NULL
);
-- 创建索引以提升查询性能
CREATE INDEX IF NOT EXISTS idx_regeneration_tasks_chapter ON regeneration_tasks(chapter_id);
CREATE INDEX IF NOT EXISTS idx_regeneration_tasks_project ON regeneration_tasks(project_id);
CREATE INDEX IF NOT EXISTS idx_regeneration_tasks_user ON regeneration_tasks(user_id);
CREATE INDEX IF NOT EXISTS idx_regeneration_tasks_status ON regeneration_tasks(status);
CREATE INDEX IF NOT EXISTS idx_regeneration_tasks_created ON regeneration_tasks(created_at DESC);
-- 添加注释
COMMENT ON TABLE regeneration_tasks IS '章节重新生成任务表,记录每次根据AI建议重新生成章节的任务';
COMMENT ON COLUMN regeneration_tasks.modification_instructions IS '合并后的完整修改指令';
COMMENT ON COLUMN regeneration_tasks.original_suggestions IS '原始AI分析建议列表';
COMMENT ON COLUMN regeneration_tasks.selected_suggestion_indices IS '用户选择的建议索引';
COMMENT ON COLUMN regeneration_tasks.preserve_elements IS '需要保留的元素配置(JSON)';
COMMENT ON COLUMN regeneration_tasks.focus_areas IS '重点优化方向列表(JSON)';
-- 修复外键约束(合并自 fix_all_missing_columns.sql
-- 删除可能存在问题的外键约束
ALTER TABLE regeneration_tasks
DROP CONSTRAINT IF EXISTS fk_regeneration_analysis;
-- 完成提示
SELECT '✅ 重新生成任务表创建完成,外键约束已修复' AS status;