-- 创建数据订单表 -- 用于记录用户提交的数据需求订单 CREATE TABLE IF NOT EXISTS public.data_orders ( id SERIAL PRIMARY KEY, -- 订单基本信息 order_no VARCHAR(50) NOT NULL UNIQUE, -- 订单编号,格式:DO + 年月日 + 4位序号 title VARCHAR(200) NOT NULL, -- 订单标题 description TEXT NOT NULL, -- 需求描述 -- LLM 提取结果 extracted_domains JSONB, -- 提取的业务领域列表 extracted_fields JSONB, -- 提取的数据字段列表 extraction_purpose TEXT, -- 提取的数据用途 -- 图谱分析结果 graph_analysis JSONB, -- 连通性分析结果 can_connect BOOLEAN, -- 是否可连通 connection_path JSONB, -- 连通路径 -- 状态管理 -- pending-待处理, analyzing-分析中, processing-加工中, -- completed-完成, rejected-驳回, need_supplement-待补充, -- manual_review-待人工处理, updated-已更新 status VARCHAR(50) NOT NULL DEFAULT 'pending', reject_reason TEXT, -- 驳回原因 -- 关联数据 result_product_id INTEGER, -- 生成的数据产品ID result_dataflow_id INTEGER, -- 生成的数据流ID -- 审计字段 created_by VARCHAR(100) NOT NULL DEFAULT 'user', created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, processed_by VARCHAR(100), -- 处理人 processed_at TIMESTAMP -- 处理时间 ); -- 创建索引 CREATE INDEX IF NOT EXISTS idx_data_orders_order_no ON public.data_orders(order_no); CREATE INDEX IF NOT EXISTS idx_data_orders_status ON public.data_orders(status); CREATE INDEX IF NOT EXISTS idx_data_orders_created_at ON public.data_orders(created_at DESC); CREATE INDEX IF NOT EXISTS idx_data_orders_created_by ON public.data_orders(created_by); -- 添加表注释 COMMENT ON TABLE public.data_orders IS '数据订单表,记录用户提交的数据需求订单'; COMMENT ON COLUMN public.data_orders.order_no IS '订单编号,格式:DO + 年月日 + 4位序号,如 DO202412290001'; COMMENT ON COLUMN public.data_orders.title IS '订单标题'; COMMENT ON COLUMN public.data_orders.description IS '需求描述,用户输入的数据需求详情'; COMMENT ON COLUMN public.data_orders.extracted_domains IS 'LLM 提取的业务领域列表,JSON 数组格式'; COMMENT ON COLUMN public.data_orders.extracted_fields IS 'LLM 提取的数据字段列表,JSON 数组格式'; COMMENT ON COLUMN public.data_orders.extraction_purpose IS 'LLM 提取的数据用途描述'; COMMENT ON COLUMN public.data_orders.graph_analysis IS '图谱连通性分析结果,包含匹配的节点和连接信息'; COMMENT ON COLUMN public.data_orders.can_connect IS '是否可通过共同字段连通'; COMMENT ON COLUMN public.data_orders.connection_path IS '连通路径信息,包含可用于 JOIN 的字段'; COMMENT ON COLUMN public.data_orders.status IS '订单状态:pending/analyzing/processing/completed/rejected/need_supplement/manual_review/updated'; COMMENT ON COLUMN public.data_orders.reject_reason IS '驳回原因'; COMMENT ON COLUMN public.data_orders.result_product_id IS '生成的数据产品ID,关联 data_products 表'; COMMENT ON COLUMN public.data_orders.result_dataflow_id IS '生成的数据流ID,关联 Neo4j 中的 DataFlow 节点'; COMMENT ON COLUMN public.data_orders.created_by IS '创建人'; COMMENT ON COLUMN public.data_orders.created_at IS '创建时间'; COMMENT ON COLUMN public.data_orders.updated_at IS '更新时间'; COMMENT ON COLUMN public.data_orders.processed_by IS '处理人'; COMMENT ON COLUMN public.data_orders.processed_at IS '处理时间';