create_data_orders_table.sql 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. -- 创建数据订单表
  2. -- 用于记录用户提交的数据需求订单
  3. CREATE TABLE IF NOT EXISTS public.data_orders (
  4. id SERIAL PRIMARY KEY,
  5. -- 订单基本信息
  6. order_no VARCHAR(50) NOT NULL UNIQUE, -- 订单编号,格式:DO + 年月日 + 4位序号
  7. title VARCHAR(200) NOT NULL, -- 订单标题
  8. description TEXT NOT NULL, -- 需求描述
  9. -- LLM 提取结果
  10. extracted_domains JSONB, -- 提取的业务领域列表
  11. extracted_fields JSONB, -- 提取的数据字段列表
  12. extraction_purpose TEXT, -- 提取的数据用途
  13. -- 图谱分析结果
  14. graph_analysis JSONB, -- 连通性分析结果
  15. can_connect BOOLEAN, -- 是否可连通
  16. connection_path JSONB, -- 连通路径
  17. -- 状态管理
  18. -- pending-待处理, analyzing-分析中, processing-加工中,
  19. -- completed-完成, rejected-驳回, need_supplement-待补充,
  20. -- manual_review-待人工处理, updated-已更新
  21. status VARCHAR(50) NOT NULL DEFAULT 'pending',
  22. reject_reason TEXT, -- 驳回原因
  23. -- 关联数据
  24. result_product_id INTEGER, -- 生成的数据产品ID
  25. result_dataflow_id INTEGER, -- 生成的数据流ID
  26. -- 审计字段
  27. created_by VARCHAR(100) NOT NULL DEFAULT 'user',
  28. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  29. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  30. processed_by VARCHAR(100), -- 处理人
  31. processed_at TIMESTAMP -- 处理时间
  32. );
  33. -- 创建索引
  34. CREATE INDEX IF NOT EXISTS idx_data_orders_order_no ON public.data_orders(order_no);
  35. CREATE INDEX IF NOT EXISTS idx_data_orders_status ON public.data_orders(status);
  36. CREATE INDEX IF NOT EXISTS idx_data_orders_created_at ON public.data_orders(created_at DESC);
  37. CREATE INDEX IF NOT EXISTS idx_data_orders_created_by ON public.data_orders(created_by);
  38. -- 添加表注释
  39. COMMENT ON TABLE public.data_orders IS '数据订单表,记录用户提交的数据需求订单';
  40. COMMENT ON COLUMN public.data_orders.order_no IS '订单编号,格式:DO + 年月日 + 4位序号,如 DO202412290001';
  41. COMMENT ON COLUMN public.data_orders.title IS '订单标题';
  42. COMMENT ON COLUMN public.data_orders.description IS '需求描述,用户输入的数据需求详情';
  43. COMMENT ON COLUMN public.data_orders.extracted_domains IS 'LLM 提取的业务领域列表,JSON 数组格式';
  44. COMMENT ON COLUMN public.data_orders.extracted_fields IS 'LLM 提取的数据字段列表,JSON 数组格式';
  45. COMMENT ON COLUMN public.data_orders.extraction_purpose IS 'LLM 提取的数据用途描述';
  46. COMMENT ON COLUMN public.data_orders.graph_analysis IS '图谱连通性分析结果,包含匹配的节点和连接信息';
  47. COMMENT ON COLUMN public.data_orders.can_connect IS '是否可通过共同字段连通';
  48. COMMENT ON COLUMN public.data_orders.connection_path IS '连通路径信息,包含可用于 JOIN 的字段';
  49. COMMENT ON COLUMN public.data_orders.status IS '订单状态:pending/analyzing/processing/completed/rejected/need_supplement/manual_review/updated';
  50. COMMENT ON COLUMN public.data_orders.reject_reason IS '驳回原因';
  51. COMMENT ON COLUMN public.data_orders.result_product_id IS '生成的数据产品ID,关联 data_products 表';
  52. COMMENT ON COLUMN public.data_orders.result_dataflow_id IS '生成的数据流ID,关联 Neo4j 中的 DataFlow 节点';
  53. COMMENT ON COLUMN public.data_orders.created_by IS '创建人';
  54. COMMENT ON COLUMN public.data_orders.created_at IS '创建时间';
  55. COMMENT ON COLUMN public.data_orders.updated_at IS '更新时间';
  56. COMMENT ON COLUMN public.data_orders.processed_by IS '处理人';
  57. COMMENT ON COLUMN public.data_orders.processed_at IS '处理时间';