45 lines
1.5 KiB
SQL
45 lines
1.5 KiB
SQL
|
|
-- 为Chapter表添加与Outline的关联关系
|
||
|
|
-- 实现大纲到章节的一对多关系
|
||
|
|
|
||
|
|
-- 添加outline_id外键字段
|
||
|
|
ALTER TABLE chapters
|
||
|
|
ADD COLUMN outline_id VARCHAR(36) NULL;
|
||
|
|
|
||
|
|
-- 添加sub_index字段,表示在该大纲下的子章节序号
|
||
|
|
ALTER TABLE chapters
|
||
|
|
ADD COLUMN sub_index INTEGER DEFAULT 1;
|
||
|
|
|
||
|
|
-- 添加字段注释(PostgreSQL语法)
|
||
|
|
COMMENT ON COLUMN chapters.outline_id IS '关联的大纲ID';
|
||
|
|
COMMENT ON COLUMN chapters.sub_index IS '大纲下的子章节序号';
|
||
|
|
|
||
|
|
-- 添加外键约束
|
||
|
|
ALTER TABLE chapters
|
||
|
|
ADD CONSTRAINT fk_chapter_outline
|
||
|
|
FOREIGN KEY (outline_id)
|
||
|
|
REFERENCES outlines(id)
|
||
|
|
ON DELETE SET NULL;
|
||
|
|
|
||
|
|
-- 创建索引优化查询性能
|
||
|
|
CREATE INDEX idx_chapters_outline_id ON chapters(outline_id);
|
||
|
|
CREATE INDEX idx_chapters_outline_sub ON chapters(outline_id, sub_index);
|
||
|
|
|
||
|
|
-- 说明:
|
||
|
|
-- outline_id为NULL表示旧数据或独立章节
|
||
|
|
-- outline_id有值表示该章节由某个大纲展开生成
|
||
|
|
-- sub_index表示在该大纲下的第几个子章节(从1开始)
|
||
|
|
|
||
|
|
-- 为 chapters 表添加 expansion_plan 字段
|
||
|
|
-- 用于存储大纲展开规划的详细数据(JSON格式)
|
||
|
|
|
||
|
|
-- 添加字段
|
||
|
|
ALTER TABLE chapters ADD COLUMN IF NOT EXISTS expansion_plan TEXT;
|
||
|
|
|
||
|
|
-- 添加注释
|
||
|
|
COMMENT ON COLUMN chapters.expansion_plan IS '展开规划详情(JSON): 包含key_events, character_focus, emotional_tone等';
|
||
|
|
|
||
|
|
-- 查看修改结果
|
||
|
|
SELECT column_name, data_type, is_nullable, column_default
|
||
|
|
FROM information_schema.columns
|
||
|
|
WHERE table_name = 'chapters'
|
||
|
|
ORDER BY ordinal_position;
|