diff --git a/persona-brain-db/schema/16-documents.sql b/persona-brain-db/schema/16-documents.sql new file mode 100644 index 0000000..cfbfd3a --- /dev/null +++ b/persona-brain-db/schema/16-documents.sql @@ -0,0 +1,29 @@ +-- ============================================================ +-- 表16:documents(文档存储表) +-- 用途:Notion导出存储,支持嵌套结构和树形路径 +-- 导入工作流:霜砚整理 → Notion API导出 → 写入本地documents表 +-- ============================================================ + +CREATE TABLE IF NOT EXISTS documents ( + document_id VARCHAR(64) PRIMARY KEY, + persona_id VARCHAR(32) + REFERENCES persona_identity(persona_id), + parent_id VARCHAR(64) REFERENCES documents(document_id), + path TEXT NOT NULL, -- 树形路径,如 "/root/folder/doc" + title VARCHAR(256) NOT NULL, + content TEXT, -- markdown内容 + content_type VARCHAR(32) NOT NULL DEFAULT 'markdown' + CHECK (content_type IN ('markdown', 'json', 'plain', 'notion')), + source VARCHAR(32) NOT NULL DEFAULT 'local' + CHECK (source IN ('local', 'notion_import', 'api')), + tags TEXT, -- JSON array + version INTEGER NOT NULL DEFAULT 1, + checksum VARCHAR(64), + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE INDEX IF NOT EXISTS idx_doc_persona ON documents(persona_id); +CREATE INDEX IF NOT EXISTS idx_doc_parent ON documents(parent_id); +CREATE INDEX IF NOT EXISTS idx_doc_path ON documents(path); +CREATE INDEX IF NOT EXISTS idx_doc_source ON documents(source);