-- 创作知识 · 过程库建表 DDL -- 目标实例:open_aigc(阿里云 AnalyticDB for PostgreSQL / Greenplum 7.0.0,PG12 内核,新加坡) -- 连接:OPEN_AIGC_PG_*(用户 aiddit_aigc 已确认有 CREATE 权限) -- -- Greenplum 注意事项: -- 1. 每张表需 DISTRIBUTED BY;主键/唯一键必须包含分布列。 -- 2. 不依赖外键强约束(Greenplum 不强制 FK),post_id ↔ ck_post.id 的关系由应用维护。 -- 3. updated_at 由应用在更新时写入(不用触发器,保持简单)。 -- 4. 本实例无 pgvector;embedding 一期不做,需要时另议(非 pgvector 路线)。 CREATE SCHEMA IF NOT EXISTS creation_knowledge; SET search_path TO creation_knowledge; -- 每帖一行:各环节产物存 JSONB,stage 记录处理到哪一步 CREATE TABLE IF NOT EXISTS ck_post ( id text NOT NULL, -- xhs_,同帖唯一,复用为 ingest source.id platform text, -- xiaohongshu 等 url text, -- 原始链接 raw jsonb, -- fetch_post_detail 原始响应 cards jsonb, -- 统一卡片列表 [{index,kind,url,timestamp}](图/帧) extracted jsonb, -- extract_content 多模态产物 screening jsonb, -- screen_post 结果 {passed,score,reason} stage text NOT NULL DEFAULT 'fetched', -- fetched/extracted/screened/split/done/rejected/failed created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now(), PRIMARY KEY (id) ) DISTRIBUTED BY (id); CREATE INDEX IF NOT EXISTS idx_ck_post_stage ON ck_post (stage); CREATE INDEX IF NOT EXISTS idx_ck_post_platform ON ck_post (platform); -- 每条知识片段一行:拆分+解构产物,以及组装好的 ingest payload(开发期的最终落点) CREATE TABLE IF NOT EXISTS ck_knowledge_item ( id bigserial, -- 片段自增 ID post_id text NOT NULL, -- → ck_post.id(同帖多片段复用同一 source) item jsonb, -- 拆分结果 title/knowledge_types/what/why/how/evidence deconstruction jsonb, -- 解构结果 stages/scopes/reason ingest_payload jsonb, -- 组装后的 ingest 请求体(开发期最终产物) ingest_status text NOT NULL DEFAULT 'pending', -- pending(未发送) / ingested / failed knowledge_id text, -- ingest API 返回的知识 ID(上线后才有) created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now(), PRIMARY KEY (id) ) DISTRIBUTED BY (id); CREATE INDEX IF NOT EXISTS idx_ck_item_post ON ck_knowledge_item (post_id); CREATE INDEX IF NOT EXISTS idx_ck_item_status ON ck_knowledge_item (ingest_status); -- 迁移(表已存在时补列,幂等):卡片溯源 ALTER TABLE ck_post ADD COLUMN IF NOT EXISTS cards jsonb; -- 回滚:DROP SCHEMA creation_knowledge CASCADE;