@@ -1,4 +1,5 @@
-- Active: 1775801470429@@39.107.112.174@5432@lablesystem
-- Active: 1775801470429@@39.107.112.174@5432@lablesystem_test
begin ;
-- Drop Tables (按依赖关系倒序删除)
@@ -15,14 +16,14 @@ DROP TABLE IF EXISTS sys_menu CASCADE;
DROP TABLE IF EXISTS sys_user CASCADE ;
DROP TABLE IF EXISTS sys_company CASCADE ;
CREATE TABLE IF NOT EXISTS sys_company (
id BIGINT PRIMARY KEY ,
company_code VARCHAR ( 64 ) NOT NULL UNIQUE ,
CREATE TABLE IF NOT EXISTS sys_company
(
id BIGINT PRIMARY KEY ,
company_code VARCHAR ( 64 ) NOT NULL UNIQUE ,
company_name VARCHAR ( 128 ) NOT NULL ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' ENABLED ' ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
status VARCHAR ( 32 ) NOT NULL DEFAULT ' ENABLED ' ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ;
COMMENT ON TABLE sys_company IS ' 公司表。 ' ;
@@ -33,22 +34,23 @@ COMMENT ON COLUMN sys_company.status IS '公司状态,默认 ENABLED, 可按
COMMENT ON COLUMN sys_company . created_at IS ' 创建时间。 ' ;
COMMENT ON COLUMN sys_company . updated_at IS ' 更新时间。 ' ;
CREATE TABLE IF NOT EXISTS sys_user (
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
phone VARCHAR ( 32 ) NOT NULL ,
username VARCHAR ( 64 ) ,
role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
position VARCHAR ( 32 ) NOT NULL DEFAULT ' ANNOTATOR ' ,
real_name VARCHAR ( 64 ) NOT NULL ,
password_hash VARCHAR ( 255 ) NOT NULL ,
must_change_password BOOLEAN NOT NULL DEFAUL T TRUE ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' ENABLED ' ,
session_version INTEGER NOT NULL DEFAULT 1 ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
upd ated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CREATE TABLE IF NOT EXISTS sys_user
(
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
phone VARCHAR ( 32 ) NOT NULL ,
username VARCHAR ( 64 ) ,
role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
position VARCHAR ( 32 ) NOT NULL DEFAULT ' ANNOTATOR ' ,
real_name VARCHAR ( 64 ) NOT NULL ,
password_hash VARCHAR ( 255 ) NO T NULL ,
must_change_password BOOLEAN NOT NULL DEFAULT TRUE ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' ENABLED ' ,
session_version INTEGER NOT NULL DEFAULT 1 ,
cre ated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT uq_sys_user_company_phone UNIQUE ( company_id , phone ) ,
CONSTRAINT fk_sys_user_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id )
CONSTRAINT fk_sys_user_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id )
) ;
COMMENT ON TABLE sys_user IS ' 用户表。role 表示数据权限角色, position 表示岗位。 ' ;
@@ -66,17 +68,18 @@ COMMENT ON COLUMN sys_user.session_version IS '会话版本号,用于强制旧
COMMENT ON COLUMN sys_user . created_at IS ' 创建时间。 ' ;
COMMENT ON COLUMN sys_user . updated_at IS ' 更新时间。 ' ;
CREATE TABLE IF NOT EXISTS sys_menu (
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
menu_code VARCHAR ( 64 ) NOT NULL ,
menu_nam e VARCHAR ( 128 ) NOT NULL ,
path VARCHAR ( 255 ) NOT NULL ,
CREATE TABLE IF NOT EXISTS sys_menu
(
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
menu_cod e VARCHAR ( 64 ) NOT NULL ,
menu_name VARCHAR ( 128 ) NOT NULL ,
path VARCHAR ( 255 ) NOT NULL ,
visible_positions VARCHAR ( 255 ) NOT NULL DEFAULT ' ADMIN ' ,
sort_order INTEGER NOT NULL DEFAULT 0 ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_sys_menu_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id )
sort_order INTEGER NOT NULL DEFAULT 0 ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_sys_menu_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id )
) ;
COMMENT ON TABLE sys_menu IS ' 菜单表。 ' ;
@@ -90,20 +93,21 @@ COMMENT ON COLUMN sys_menu.sort_order IS '菜单排序号,默认 0。';
COMMENT ON COLUMN sys_menu . created_at IS ' 创建时间。 ' ;
COMMENT ON COLUMN sys_menu . updated_at IS ' 更新时间。 ' ;
CREATE TABLE IF NOT EXISTS sys_config (
id BIGINT PRIMARY KEY ,
company_ id BIGINT NOT NULL ,
config_type VARCHAR ( 32 ) NOT NULL DEFAULT ' SYSTEM ' ,
config_nam e VARCHAR ( 128 ) NOT NULL ,
config_valu e TEXT NOT NULL ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' ENABLED ' ,
creator_id BIGINT NOT NULL ,
creator_role VARCHAR ( 50 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
upd ated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CREATE TABLE IF NOT EXISTS sys_config
(
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
config_typ e VARCHAR ( 32 ) NOT NULL DEFAULT ' SYSTEM ' ,
config_nam e VARCHAR ( 128 ) NOT NULL ,
config_value TEXT NOT NULL ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' ENABLED ' ,
creator_id BIGINT NOT NULL ,
creator_role VARCHAR ( 50 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
cre ated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT uq_sys_config_company_name UNIQUE ( company_id , config_name ) ,
CONSTRAINT fk_sys_config_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_sys_config_creator FOREIGN KEY ( creator_id ) REFERENCES sys_user ( id )
CONSTRAINT fk_sys_config_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_sys_config_creator FOREIGN KEY ( creator_id ) REFERENCES sys_user ( id )
) ;
COMMENT ON TABLE sys_config IS ' 系统配置表, 保存模型配置、Prompt 配置和系统参数配置。 ' ;
@@ -118,23 +122,24 @@ COMMENT ON COLUMN sys_config.creator_role IS '创建人角色.默认 EMPLOYEE。
COMMENT ON COLUMN sys_config . created_at IS ' 创建时间。 ' ;
COMMENT ON COLUMN sys_config . updated_at IS ' 更新时间。 ' ;
CREATE TABLE IF NOT EXISTS source_resource (
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
creator_id BIGINT NOT NULL ,
creator_role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
resource_name VARCHAR ( 255 ) NOT NULL ,
resource_type VARCHAR ( 3 2) NOT NULL DEFAULT ' TEXT ' ,
bucket_name VARCHAR ( 128 ) NOT NULL ,
file_path VARCHAR ( 5 12) NOT NULL ,
file_size BIGINT NOT NULL DEFAULT 0 ,
source_status VARCHAR ( 32 ) NOT NULL DEFAULT ' UPLOADED ' ,
storage_provider VARCHAR ( 64 ) NOT NULL DEFAULT ' rustfs ' ,
remark VARCHAR ( 255 ) ,
c reated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
upd ated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_source_resource_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_source_resource_creator FOREIGN KEY ( creator _id ) REFERENCES sys_user ( id )
CREATE TABLE IF NOT EXISTS source_resource
(
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
creator_id BIGINT NOT NULL ,
c reator_role VARCHAR ( 3 2) NOT NULL DEFAULT ' EMPLOYEE ' ,
resource_name VARCHAR ( 255 ) NOT NULL ,
resource_type VARCHAR ( 32 ) NOT NULL DEFAULT ' TEXT ' ,
bucket_name VARCHAR ( 128 ) NOT NULL ,
file_path VARCHAR ( 512 ) NOT NULL ,
file_size BIGINT NOT NULL DEFAULT 0 ,
source_status VARCHAR ( 32 ) NOT NULL DEFAULT ' UPLOADED ' ,
storage_provider VARCHAR ( 64 ) NOT NULL DEFAULT ' rustfs ' ,
remark VARCHAR ( 255 ) ,
cre ated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_source_resource_company FOREIGN KEY ( company _id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_source_resource_creator FOREIGN KEY ( creator_id ) REFERENCES sys_user ( id )
) ;
COMMENT ON TABLE source_resource IS ' 资源表,保存文本、图片、视频资源元数据。 ' ;
@@ -153,61 +158,62 @@ COMMENT ON COLUMN source_resource.remark IS '备注说明。';
COMMENT ON COLUMN source_resource . created_at IS ' 创建时间。 ' ;
COMMENT ON COLUMN source_resource . updated_at IS ' 更新时间。 ' ;
CREATE TABLE IF NOT EXISTS annotation_task (
id BIGINT PRIMARY KEY ,
company_ id BIGINT NOT NULL ,
creator _id BIGINT NOT NULL ,
c reator_role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
task_name VARCHAR ( 255 ) NOT NULL ,
industry_type VARCHAR ( 32 ) NOT NULL DEFAULT ' transport ' ,
task_type VARCHAR ( 32 ) NOT NULL DEFAULT ' EXTRACT_QA ' ,
extract_model_config_id BIGINT ,
extract_model_name VARCHAR ( 128 ) ,
extract_model_url VARCHAR ( 255 ) ,
extract_model_api_key VARCHAR ( 255 ) ,
verify_model_config_id BIGINT ,
verify_model_name VARCHAR ( 128 ) ,
verify_model_url VARCHAR ( 255 ) ,
verify_model_api_key VARCHAR ( 255 ) ,
extract_prompt_config_id BIGINT ,
extract_prompt TEXT ,
verify_prompt_config_id BIGINT ,
verify_prompt TEXT ,
task_status VARCHAR ( 32 ) NOT NULL DEFAULT ' PENDING ' ,
is_deleted BOOLEAN NOT NULL DEFAULT FALSE ,
started_at TIMESTAMP ,
finished_at TIMESTAMP ,
error_message TEXT ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_annotation_task_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_annotation_task_creator FOREIGN KEY ( creator_id ) REFERENCES sys_user ( id ) ,
CONSTRAINT fk_annotation_task_extract_model_config FOREIGN KEY ( extract_model_config_id ) REFERENCES sys_config ( id ) ,
CONSTRAINT fk_annotation_task_verify_model_config FOREIGN KEY ( verify_model_config_id ) REFERENCES sys_config ( id ) ,
CONSTRAINT fk_annotation_task_extract_prompt_config FOREIGN KEY ( extract_prompt_config_id ) REFERENCES sys_config ( id ) ,
CONSTRAINT fk_annotation_task_verify_prompt_config FOREIGN KEY ( verify_prompt_config_id ) REFERENCES sys_config ( id )
CREATE TABLE IF NOT EXISTS image_bbox_annotation
(
id BIGINT PRIMARY KEY ,
company _id BIGINT NOT NULL ,
resource_id BIGINT NOT NULL ,
bbox_json TEXT ,
remark VARCHAR ( 500 ) ,
creator_id BIGINT NOT NULL ,
creator_role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_image_bbox_annotation_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_image_bbox_annotation_resource FOREIGN KEY ( resource_id ) REFERENCES source_resource ( id ) ,
CONSTRAINT fk_image_bbox_annotation_creator FOREIGN KEY ( creator_id ) REFERENCES sys_user ( id )
) ;
COMMENT ON TABLE annotation_task IS ' 任务表,保存任务、配置引用与执行快照 。' ;
COMMENT ON TABLE image_bbox_ annotation IS ' 图片BBOX标注表 。' ;
COMMENT ON COLUMN image_bbox_annotation . id IS ' 主键ID。 ' ;
COMMENT ON COLUMN image_bbox_annotation . company_id IS ' 所属公司ID。 ' ;
COMMENT ON COLUMN image_bbox_annotation . resource_id IS ' 关联的图片资源ID。 ' ;
COMMENT ON COLUMN image_bbox_annotation . bbox_json IS ' bbox坐标信息JSON数组。 ' ;
COMMENT ON COLUMN image_bbox_annotation . remark IS ' 备注说明。 ' ;
COMMENT ON COLUMN image_bbox_annotation . creator_id IS ' 创建人用户ID。 ' ;
COMMENT ON COLUMN image_bbox_annotation . creator_role IS ' 创建人数据权限角色,默认 EMPLOYEE。 ' ;
COMMENT ON COLUMN image_bbox_annotation . created_at IS ' 创建时间。 ' ;
COMMENT ON COLUMN image_bbox_annotation . updated_at IS ' 更新时间。 ' ;
-- 修改 annotation_task 表,删除模型和提示词相关字段
CREATE TABLE IF NOT EXISTS annotation_task
(
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
creator_id BIGINT NOT NULL ,
creator_role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
task_name VARCHAR ( 255 ) NOT NULL ,
industry_type VARCHAR ( 32 ) NOT NULL DEFAULT ' transport ' ,
task_type VARCHAR ( 32 ) NOT NULL DEFAULT ' EXTRACT_QA ' ,
task_status VARCHAR ( 32 ) NOT NULL DEFAULT ' PENDING ' ,
is_deleted BOOLEAN NOT NULL DEFAULT FALSE ,
started_at TIMESTAMP ,
finished_at TIMESTAMP ,
error_message TEXT ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_annotation_task_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_annotation_task_creator FOREIGN KEY ( creator_id ) REFERENCES sys_user ( id )
) ;
COMMENT ON TABLE annotation_task IS ' 任务表,保存任务配置与执行快照。 ' ;
COMMENT ON COLUMN annotation_task . id IS ' 任务主键ID。 ' ;
COMMENT ON COLUMN annotation_task . company_id IS ' 所属公司ID。 ' ;
COMMENT ON COLUMN annotation_task . creator_id IS ' 任务创建人用户ID。 ' ;
COMMENT ON COLUMN annotation_task . creator_role IS ' 任务创建人数据权限角色,默认 EMPLOYEE。 ' ;
COMMENT ON COLUMN annotation_task . task_name IS ' 任务名称。 ' ;
COMMENT ON COLUMN annotation_task . industry_type IS ' 行业类型简写,默认 transport, 可选值按业务扩展,例如 electricity 。 ' ;
COMMENT ON COLUMN annotation_task . industry_type IS ' 行业类型简写,默认 transport, 可选值按业务扩展。 ' ;
COMMENT ON COLUMN annotation_task . task_type IS ' 任务类型,默认 EXTRACT_QA。 ' ;
COMMENT ON COLUMN annotation_task . extract_model_config_id IS ' 抽取模型配置ID, 关联 sys_config.id。 ' ;
COMMENT ON COLUMN annotation_task . extract_model_name IS ' 抽取模型名称。 ' ;
COMMENT ON COLUMN annotation_task . extract_model_url IS ' 抽取模型调用地址。 ' ;
COMMENT ON COLUMN annotation_task . extract_model_api_key IS ' 抽取模型调用密钥。 ' ;
COMMENT ON COLUMN annotation_task . verify_model_config_id IS ' 校验模型配置ID, 关联 sys_config.id。 ' ;
COMMENT ON COLUMN annotation_task . verify_model_name IS ' 校验模型名称。 ' ;
COMMENT ON COLUMN annotation_task . verify_model_url IS ' 校验模型调用地址。 ' ;
COMMENT ON COLUMN annotation_task . verify_model_api_key IS ' 校验模型调用密钥。 ' ;
COMMENT ON COLUMN annotation_task . extract_prompt_config_id IS ' 抽取Prompt配置ID, 关联 sys_config.id。 ' ;
COMMENT ON COLUMN annotation_task . extract_prompt IS ' 抽取 Prompt 文本。 ' ;
COMMENT ON COLUMN annotation_task . verify_prompt_config_id IS ' 校验Prompt配置ID, 关联 sys_config.id。 ' ;
COMMENT ON COLUMN annotation_task . verify_prompt IS ' 校验 Prompt 文本。 ' ;
COMMENT ON COLUMN annotation_task . task_status IS ' 任务状态,默认 PENDING, 可选 RUNNING、COMPLETED、FAILED。 ' ;
COMMENT ON COLUMN annotation_task . is_deleted IS ' 任务软删除标记,默认 FALSE。 ' ;
COMMENT ON COLUMN annotation_task . started_at IS ' 任务开始时间。 ' ;
@@ -216,16 +222,17 @@ COMMENT ON COLUMN annotation_task.error_message IS '任务失败错误信息。'
COMMENT ON COLUMN annotation_task . created_at IS ' 创建时间。 ' ;
COMMENT ON COLUMN annotation_task . updated_at IS ' 更新时间。 ' ;
CREATE TABLE IF NOT EXISTS annotation_task_resource (
id BIGINT PRIMARY KEY ,
company_ id BIGINT NOT NULL ,
task _id BIGINT NOT NULL ,
CREATE TABLE IF NOT EXISTS annotation_task_resource
(
id BIGINT PRIMARY KEY ,
company _id BIGINT NOT NULL ,
task_id BIGINT NOT NULL ,
resource_id BIGINT NOT NULL ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT uq_annotation_task_resource UNIQUE ( task_id , resource_id ) ,
CONSTRAINT fk_annotation_task_resource_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_annotation_task_resource_task FOREIGN KEY ( task_id ) REFERENCES annotation_task ( id ) ,
CONSTRAINT fk_annotation_task_resource_resource FOREIGN KEY ( resource_id ) REFERENCES source_resource ( id )
CONSTRAINT fk_annotation_task_resource_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_annotation_task_resource_task FOREIGN KEY ( task_id ) REFERENCES annotation_task ( id ) ,
CONSTRAINT fk_annotation_task_resource_resource FOREIGN KEY ( resource_id ) REFERENCES source_resource ( id )
) ;
COMMENT ON TABLE annotation_task_resource IS ' 任务与资源关联表,一个任务可绑定多个资源。 ' ;
@@ -235,29 +242,30 @@ COMMENT ON COLUMN annotation_task_resource.task_id IS '任务ID。';
COMMENT ON COLUMN annotation_task_resource . resource_id IS ' 资源ID。 ' ;
COMMENT ON COLUMN annotation_task_resource . created_at IS ' 创建时间。 ' ;
CREATE TABLE IF NOT EXISTS annotation_result (
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
creator_id BIGINT NOT NULL ,
creator_role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
task_id BIGINT NOT NULL ,
resource_id BIGINT NOT NULL ,
qa_content_json TEXT NOT NULL DEFAULT ' {} ' ,
CREATE TABLE IF NOT EXISTS annotation_result
(
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
creator_id BIGINT NOT NULL ,
creator_role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
task_id BIGINT NOT NULL ,
resource_id BIGINT NOT NULL ,
qa_content_json TEXT NOT NULL DEFAULT ' {} ' ,
qa_content_storage_mode VARCHAR ( 32 ) NOT NULL DEFAULT ' INLINE ' ,
qa_content_file_path VARCHAR ( 512 ) ,
diff_summary TEXT NOT NULL DEFAULT ' {} ' ,
requires_manual_review BOOLEAN NOT NULL DEFAULT FALSE ,
is_deleted BOOLEAN NOT NULL DEFAULT FALSE ,
reviewer_id BIGINT ,
review_comment TEXT ,
reviewed_at TIMESTAMP ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_annotation_result_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_annotation_result_creator FOREIGN KEY ( creator_id ) REFERENCES sys_user ( id ) ,
CONSTRAINT fk_annotation_result_task FOREIGN KEY ( task_id ) REFERENCES annotation_task ( id ) ,
CONSTRAINT fk_annotation_result_resource FOREIGN KEY ( resource_id ) REFERENCES source_resource ( id ) ,
CONSTRAINT fk_annotation_result_reviewer FOREIGN KEY ( reviewer_id ) REFERENCES sys_user ( id )
qa_content_file_path VARCHAR ( 512 ) ,
diff_summary TEXT NOT NULL DEFAULT ' {} ' ,
requires_manual_review BOOLEAN NOT NULL DEFAULT FALSE ,
is_deleted BOOLEAN NOT NULL DEFAULT FALSE ,
reviewer_id BIGINT ,
review_comment TEXT ,
reviewed_at TIMESTAMP ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_annotation_result_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_annotation_result_creator FOREIGN KEY ( creator_id ) REFERENCES sys_user ( id ) ,
CONSTRAINT fk_annotation_result_task FOREIGN KEY ( task_id ) REFERENCES annotation_task ( id ) ,
CONSTRAINT fk_annotation_result_resource FOREIGN KEY ( resource_id ) REFERENCES source_resource ( id ) ,
CONSTRAINT fk_annotation_result_reviewer FOREIGN KEY ( reviewer_id ) REFERENCES sys_user ( id )
) ;
COMMENT ON TABLE annotation_result IS ' 当前标注结果表。 ' ;
@@ -279,27 +287,28 @@ COMMENT ON COLUMN annotation_result.reviewed_at IS '审核时间。';
COMMENT ON COLUMN annotation_result . created_at IS ' 创建时间。 ' ;
COMMENT ON COLUMN annotation_result . updated_at IS ' 更新时间。 ' ;
CREATE TABLE IF NOT EXISTS annotation_result_history (
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
creator_id BIGINT NOT NULL ,
creator_role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
source_result_id BIGINT ,
task_id BIGINT NOT NULL ,
resource_id BIGINT NOT NULL ,
qa_content_json TEXT NOT NULL DEFAULT ' {} ' ,
CREATE TABLE IF NOT EXISTS annotation_result_history
(
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
creator_id BIGINT NOT NULL ,
creator_role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
source_result_id BIGINT ,
task_id BIGINT NOT NULL ,
resource_id BIGINT NOT NULL ,
qa_content_json TEXT NOT NULL DEFAULT ' {} ' ,
qa_content_storage_mode VARCHAR ( 32 ) NOT NULL DEFAULT ' INLINE ' ,
qa_content_file_path VARCHAR ( 512 ) ,
archive_reason VARCHAR ( 255 ) ,
archived_by BIGINT ,
archived_at TIMESTAMP ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_annotation_result_history_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_annotation_result_history_creator FOREIGN KEY ( creator_id ) REFERENCES sys_user ( id ) ,
CONSTRAINT fk_annotation_result_history_result FOREIGN KEY ( source_result_id ) REFERENCES annotation_result ( id ) ,
CONSTRAINT fk_annotation_result_history_task FOREIGN KEY ( task_id ) REFERENCES annotation_task ( id ) ,
CONSTRAINT fk_annotation_result_history_resource FOREIGN KEY ( resource_id ) REFERENCES source_resource ( id ) ,
CONSTRAINT fk_annotation_result_history_archived_by FOREIGN KEY ( archived_by ) REFERENCES sys_user ( id )
qa_content_file_path VARCHAR ( 512 ) ,
archive_reason VARCHAR ( 255 ) ,
archived_by BIGINT ,
archived_at TIMESTAMP ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_annotation_result_history_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_annotation_result_history_creator FOREIGN KEY ( creator_id ) REFERENCES sys_user ( id ) ,
CONSTRAINT fk_annotation_result_history_result FOREIGN KEY ( source_result_id ) REFERENCES annotation_result ( id ) ,
CONSTRAINT fk_annotation_result_history_task FOREIGN KEY ( task_id ) REFERENCES annotation_task ( id ) ,
CONSTRAINT fk_annotation_result_history_resource FOREIGN KEY ( resource_id ) REFERENCES source_resource ( id ) ,
CONSTRAINT fk_annotation_result_history_archived_by FOREIGN KEY ( archived_by ) REFERENCES sys_user ( id )
) ;
COMMENT ON TABLE annotation_result_history IS ' 历史归档结果表。 ' ;
@@ -318,20 +327,21 @@ COMMENT ON COLUMN annotation_result_history.archived_by IS '归档操作人用
COMMENT ON COLUMN annotation_result_history . archived_at IS ' 归档时间。 ' ;
COMMENT ON COLUMN annotation_result_history . created_at IS ' 创建时间。 ' ;
CREATE TABLE IF NOT EXISTS training_dataset (
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
creator_id BIGINT NOT NULL ,
creator_role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
result_history_id BIGINT NOT NULL ,
sample_type VARCHAR ( 32 ) NOT NULL DEFAULT ' TEXT ' ,
glm_format_json TEXT NOT NULL ,
dataset_status VARCHAR ( 32 ) NOT NULL DEFAULT ' DRAFT ' ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
upd ated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_training_dataset_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_training_dataset_creator FOREIGN KEY ( creator _id ) REFERENCES sys_user ( id ) ,
CONSTRAINT fk_training_dataset_result_his tory FOREIGN KEY ( result_his tory _id ) REFERENCES annotation_result_history ( id )
CREATE TABLE IF NOT EXISTS training_dataset
(
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
creator_id BIGINT NOT NULL ,
c reator_role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
result_history_id BIGINT NOT NULL ,
sample_type VARCHAR ( 32 ) NOT NULL DEFAULT ' TEXT ' ,
glm_format_json TEXT NOT NULL ,
dataset_status VARCHAR ( 32 ) NOT NULL DEFAULT ' DRAFT ' ,
cre ated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_training_dataset_company FOREIGN KEY ( company _id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_training_dataset_c rea tor FOREIGN KEY ( c rea tor_id) REFERENCES sys_user ( id ) ,
CONSTRAINT fk_training_dataset_result_history FOREIGN KEY ( result_history_id ) REFERENCES annotation_result_history ( id )
) ;
COMMENT ON TABLE training_dataset IS ' 训练样本表。 ' ;
@@ -346,20 +356,21 @@ COMMENT ON COLUMN training_dataset.dataset_status IS '样本状态,默认 DRAF
COMMENT ON COLUMN training_dataset . created_at IS ' 创建时间。 ' ;
COMMENT ON COLUMN training_dataset . updated_at IS ' 更新时间。 ' ;
CREATE TABLE IF NOT EXISTS export_batch (
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
creator_id BIGINT NOT NULL ,
creator_role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
batch_no VARCHAR ( 64 ) NOT NULL UNIQUE ,
CREATE TABLE IF NOT EXISTS export_batch
(
id BIGINT PRIMARY KEY ,
company_id BIGINT NOT NULL ,
creator_id BIGINT NOT NULL ,
creator_role VARCHAR ( 32 ) NOT NULL DEFAULT ' EMPLOYEE ' ,
batch_no VARCHAR ( 64 ) NOT NULL UNIQUE ,
dataset_file_path VARCHAR ( 512 ) ,
sample_count INTEGER NOT NULL DEFAULT 0 ,
finetune_job_id VARCHAR ( 128 ) ,
finetune_status VARCHAR ( 32 ) NOT NULL DEFAULT ' NOT_STARTED ' ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_export_batch_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_export_batch_creator FOREIGN KEY ( creator_id ) REFERENCES sys_user ( id )
sample_count INTEGER NOT NULL DEFAULT 0 ,
finetune_job_id VARCHAR ( 128 ) ,
finetune_status VARCHAR ( 32 ) NOT NULL DEFAULT ' NOT_STARTED ' ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_export_batch_company FOREIGN KEY ( company_id ) REFERENCES sys_company ( id ) ,
CONSTRAINT fk_export_batch_creator FOREIGN KEY ( creator_id ) REFERENCES sys_user ( id )
) ;
COMMENT ON TABLE export_batch IS ' 导出批次表。 ' ;
@@ -375,13 +386,14 @@ COMMENT ON COLUMN export_batch.finetune_status IS '微调状态,默认 NOT_STA
COMMENT ON COLUMN export_batch . created_at IS ' 创建时间。 ' ;
COMMENT ON COLUMN export_batch . updated_at IS ' 更新时间。 ' ;
CREATE TABLE IF NOT EXISTS export_batch_item (
id BIGINT PRIMARY KEY ,
batch_ id BIGINT NOT NULL ,
CREATE TABLE IF NOT EXISTS export_batch_item
(
id BIGINT PRIMARY KEY ,
batch_id BIGINT NOT NULL ,
dataset_id BIGINT NOT NULL ,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
CONSTRAINT fk_export_batch_item_batch FOREIGN KEY ( batch_id ) REFERENCES export_batch ( id ) ,
CONSTRAINT fk_export_batch_item_dataset FOREIGN KEY ( dataset_id ) REFERENCES training_dataset ( id ) ,
CONSTRAINT fk_export_batch_item_batch FOREIGN KEY ( batch_id ) REFERENCES export_batch ( id ) ,
CONSTRAINT fk_export_batch_item_dataset FOREIGN KEY ( dataset_id ) REFERENCES training_dataset ( id ) ,
CONSTRAINT uq_export_batch_item UNIQUE ( batch_id , dataset_id )
) ;
@@ -391,26 +403,28 @@ COMMENT ON COLUMN export_batch_item.batch_id IS '关联导出批次ID。';
COMMENT ON COLUMN export_batch_item . dataset_id IS ' 关联训练样本ID。 ' ;
COMMENT ON COLUMN export_batch_item . created_at IS ' 创建时间。 ' ;
CREATE INDEX IF NOT EXISTS idx_sys_user_company ON sys_user ( company_id ) ;
CREATE INDEX IF NOT EXISTS idx_sys_user_role ON sys_user ( company_id , role ) ;
CREATE INDEX IF NOT EXISTS idx_sys_user_position ON sys_user ( company_id , position ) ;
CREATE INDEX IF NOT EXISTS idx_sys_menu_company_sort ON sys_menu ( company_id , sort_order ) ;
CREATE INDEX IF NOT EXISTS idx_sys_config_company_type ON sys_config ( company_id , config_type ) ;
CREATE INDEX IF NOT EXISTS idx_source_resource_company_type ON source_resource ( company_id , resource_type ) ;
CREATE INDEX IF NOT EXISTS idx_source_resource_company_status ON source_resource ( company_id , source_status ) ;
CREATE INDEX IF NOT EXISTS idx_source_resource_creator ON source_resource ( company_id , creator_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_task_company_status ON annotation_task ( company_id , task_status ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_task_company_deleted ON annotation_task ( company_id , is_deleted ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_task_creator ON annotation_task ( company_id , creator_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_task_resource_company_task ON annotation_task_resource ( company_id , task_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_task_resource_company_resource ON annotation_task_resource ( company_id , resource_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_result_company_deleted ON annotation_result ( company_id , is_deleted ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_result_company_manual ON annotation_result ( company_id , requires_manual_review ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_result_task ON annotation_result ( company_id , task_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_result_history_company ON annotation_result_history ( company_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_result_history_task ON annotation_result_history ( company_id , task_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_result_history_resource ON annotation_result_history ( company_id , resource_id ) ;
CREATE INDEX IF NOT EXISTS idx_training_dataset_company_status ON training_dataset ( company_id , dataset_status ) ;
CREATE INDEX IF NOT EXISTS idx_export_batch_company_status ON export_batch ( company_id , finetune_status ) ;
CREATE INDEX IF NOT EXISTS idx_sys_user_company ON sys_user ( company_id ) ;
CREATE INDEX IF NOT EXISTS idx_sys_user_role ON sys_user ( company_id , role ) ;
CREATE INDEX IF NOT EXISTS idx_sys_user_position ON sys_user ( company_id , position ) ;
CREATE INDEX IF NOT EXISTS idx_sys_menu_company_sort ON sys_menu ( company_id , sort_order ) ;
CREATE INDEX IF NOT EXISTS idx_sys_config_company_type ON sys_config ( company_id , config_type ) ;
CREATE INDEX IF NOT EXISTS idx_source_resource_company_type ON source_resource ( company_id , resource_type ) ;
CREATE INDEX IF NOT EXISTS idx_source_resource_company_status ON source_resource ( company_id , source_status ) ;
CREATE INDEX IF NOT EXISTS idx_source_resource_creator ON source_resource ( company_id , creator_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_task_company_status ON annotation_task ( company_id , task_status ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_task_company_deleted ON annotation_task ( company_id , is_deleted ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_task_creator ON annotation_task ( company_id , creator_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_task_resource_company_task ON annotation_task_resource ( company_id , task_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_task_resource_company_resource ON annotation_task_resource ( company_id , resource_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_result_company_deleted ON annotation_result ( company_id , is_deleted ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_result_company_manual ON annotation_result ( company_id , requires_manual_review ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_result_task ON annotation_result ( company_id , task_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_result_history_company ON annotation_result_history ( company_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_result_history_task ON annotation_result_history ( company_id , task_id ) ;
CREATE INDEX IF NOT EXISTS idx_annotation_result_history_resource ON annotation_result_history ( company_id , resource_id ) ;
CREATE INDEX IF NOT EXISTS idx_training_dataset_company_status ON training_dataset ( company_id , dataset_status ) ;
CREATE INDEX IF NOT EXISTS idx_export_batch_company_status ON export_batch ( company_id , finetune_status ) ;
CREATE INDEX IF NOT EXISTS idx_image_bbox_annotation_company ON image_bbox_annotation ( company_id ) ;
CREATE INDEX IF NOT EXISTS idx_image_bbox_annotation_resource ON image_bbox_annotation ( company_id , resource_id ) ;
COMMIT ;
COMMIT ;