pipeline-opportunity/mysql.ddl.sql

284 lines
8.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- /home/ymq/work/repos/pipeline-opportunity/models/opp_reports.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_reports;
CREATE TABLE opp_reports
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`project_id` VARCHAR(32) comment '项目ID',
`software` VARCHAR(128) NOT NULL comment '软件/主题',
`title` VARCHAR(255) NOT NULL comment '报告标题',
`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '报告正文',
`status` VARCHAR(24) NOT NULL DEFAULT 'draft' comment '报告状态',
`confirm_task_id` VARCHAR(32) comment '确认任务ID',
`ppt_path` VARCHAR(500) comment 'PPT文件路径',
`confirmed_by` VARCHAR(64) comment '确认人',
`created_by` VARCHAR(64) comment '创建人',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP comment '更新时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '研发报告'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_demand_atoms.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_demand_atoms;
CREATE TABLE opp_demand_atoms
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`cluster_id` VARCHAR(32) NOT NULL comment '所属类别ID',
`org_id` VARCHAR(32) NOT NULL comment '机构ID',
`snap_id` VARCHAR(32) NOT NULL comment '来源需求快照ID',
`atom_text` VARCHAR(255) NOT NULL comment '原子需求文本(LLM提取)',
`std_demand_id` VARCHAR(32) comment '归一后标准需求ID',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '需求原子(类内LLM原子化结果)'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_approvals.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_approvals;
CREATE TABLE opp_approvals
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`report_id` VARCHAR(32) NOT NULL comment '报告ID',
`project_id` VARCHAR(32) comment '项目ID',
`status` VARCHAR(16) NOT NULL DEFAULT 'initiated' comment '审批状态',
`note` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '审批说明',
`created_by` VARCHAR(64) comment '发起人',
`resolved_by` VARCHAR(64) comment '审批人',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间',
`resolved_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP comment '结论时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '研发审批'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_clusters.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_clusters;
CREATE TABLE opp_clusters
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`batch_id` VARCHAR(32) NOT NULL comment '批次ID',
`org_id` VARCHAR(32) NOT NULL comment '机构ID',
`project_id` VARCHAR(32) comment '项目ID(空=平台级挖掘)',
`name` VARCHAR(128) comment '类别名称(LLM命名)',
`doc_count` int NOT NULL DEFAULT '0' comment '类内需求数',
`share` double(6,4) DEFAULT '0' comment '占比',
`heat_rank` int DEFAULT '0' comment '热度排名',
`naming_evidence` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '命名证据(样例标题JSON)',
`centroid_snap_id` VARCHAR(32) comment '质心需求快照ID(代表样本)',
`normalize_status` VARCHAR(16) DEFAULT 'init' comment '归一化状态(init/running/done/failed)',
`normalize_error` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '归一化失败原因',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '需求类别(聚类结果)'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_demand_domains.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_demand_domains;
CREATE TABLE opp_demand_domains
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`cluster_id` VARCHAR(32) NOT NULL comment '所属类别ID',
`org_id` VARCHAR(32) NOT NULL comment '机构ID',
`parent_id` VARCHAR(32) comment '父能力域ID(空=顶层)',
`name` VARCHAR(128) NOT NULL comment '能力域名(如:人员管理/工时与考勤)',
`std_count` int NOT NULL DEFAULT '0' comment '下辖标准需求数',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '需求能力域(两层需求模型上层)'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_std_demands.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_std_demands;
CREATE TABLE opp_std_demands
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`cluster_id` VARCHAR(32) NOT NULL comment '所属类别ID',
`org_id` VARCHAR(32) NOT NULL comment '机构ID',
`name` VARCHAR(128) NOT NULL comment '标准需求名(LLM裁决命名)',
`domain_id` VARCHAR(32) comment '能力域ID(两层模型上层)',
`doc_count` int NOT NULL DEFAULT '0' comment '覆盖文档数',
`coverage` double(6,4) DEFAULT '0' comment '覆盖率(覆盖文档数/类内文档数)',
`tier` VARCHAR(16) DEFAULT 'personal' comment '层级(core核心/ext扩展/personal个性)',
`evidence_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '证据(原子样例JSON)',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '标准需求(归一化结果)'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_mining_batches.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_mining_batches;
CREATE TABLE opp_mining_batches
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`org_id` VARCHAR(32) NOT NULL comment '机构ID',
`project_id` VARCHAR(32) comment '项目ID(空=平台级挖掘)',
`scope` VARCHAR(16) NOT NULL DEFAULT 'top' comment '挖掘范围(top=TopX全量/targeted=指定类型)',
`params_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '批次参数(days/sources/record_type/keyword/category)',
`status` VARCHAR(24) NOT NULL DEFAULT 'pulling' comment '批次状态(pulling/embedding/clustering/naming/done/failed)',
`vdb_col` VARCHAR(64) comment '批次向量工作集collection名',
`stats_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '批次统计(需求数/嵌入数/簇数/失败数)',
`error_msg` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '失败原因(可行动报错)',
`created_by` VARCHAR(64) comment '创建人',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP comment '更新时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '需求挖掘批次'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_demand_snap.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_demand_snap;
CREATE TABLE opp_demand_snap
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`batch_id` VARCHAR(32) NOT NULL comment '批次ID',
`org_id` VARCHAR(32) NOT NULL comment '机构ID',
`src_id` VARCHAR(64) NOT NULL comment '爬虫平台需求ID(去重键)',
`source` VARCHAR(32) comment '数据来源(zbj/epwk/freelancer/pph)',
`title` VARCHAR(500) NOT NULL comment '需求标题',
`item_category` VARCHAR(128) comment '站内类目',
`budget_wan` double(15,2) comment '预算(万元)',
`url` VARCHAR(500) comment '需求原文链接',
`publish_time` VARCHAR(32) comment '发布时间',
`cluster_id` VARCHAR(32) comment '所属类别ID(聚类后回填)',
`embed_status` VARCHAR(16) DEFAULT 'new' comment '向量化状态(cached/new/failed)',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '需求快照'
;