有关志愿通的代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

114 lines
7.6 KiB

USE zhiyuantong;
SET NAMES utf8mb4;
CREATE TABLE IF NOT EXISTS dataset_publications (
publication_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '公开数据发布版本自增主键',
province_name VARCHAR(64) NOT NULL DEFAULT '' COMMENT '数据适用省份,空字符串表示全国数据',
admission_year SMALLINT UNSIGNED NOT NULL COMMENT '数据所属招生年度',
dataset_name VARCHAR(128) NOT NULL COMMENT '发布的数据集业务名称',
version_no VARCHAR(64) NOT NULL COMMENT '同一省份年度数据集下的发布版本号',
publication_status VARCHAR(32) NOT NULL DEFAULT 'draft' COMMENT '发布状态:draft、validating、published或withdrawn',
source_record_count INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '本次发布校验时读取的源记录数',
published_record_count INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '最终进入公开快照的记录数',
quality_grade VARCHAR(16) NOT NULL DEFAULT 'unrated' COMMENT '质量等级,如A、B、C或unrated',
validation_summary JSON NULL COMMENT '质量门禁结果与缺口统计',
published_by VARCHAR(128) NULL COMMENT '执行发布的人员姓名或账号标识',
published_at DATETIME NULL COMMENT '版本正式发布的时间',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录最近更新时间',
PRIMARY KEY (publication_id),
UNIQUE KEY uk_dataset_publication_version (
province_name, admission_year, dataset_name, version_no
),
KEY idx_dataset_publication_current (
province_name, admission_year, dataset_name, publication_status, published_at
)
) ENGINE=InnoDB COMMENT='面向考生端的可回滚数据发布版本';
CREATE TABLE IF NOT EXISTS data_quality_issues (
issue_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '数据质量问题自增主键',
publication_id BIGINT UNSIGNED NULL COMMENT '问题所属发布版本,自动扫描阶段可为空',
entity_type VARCHAR(64) NOT NULL COMMENT '问题实体类型,如admission_group或score_rank',
entity_key VARCHAR(128) NOT NULL COMMENT '问题实体业务主键字符串',
issue_code VARCHAR(64) NOT NULL COMMENT '稳定的问题代码,如MISSING_SCHOOL_ID',
severity VARCHAR(16) NOT NULL COMMENT '严重程度:info、warning、error或fatal',
field_name VARCHAR(128) NOT NULL DEFAULT '' COMMENT '涉及字段,空字符串表示整条记录',
issue_message VARCHAR(1000) NOT NULL COMMENT '可读的问题说明',
issue_fingerprint CHAR(64) NOT NULL COMMENT '实体、问题代码与关键内容的SHA-256指纹',
resolution_status VARCHAR(32) NOT NULL DEFAULT 'open' COMMENT '处理状态:open、ignored、resolved或false_positive',
detected_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '首次发现时间',
resolved_at DATETIME NULL COMMENT '问题解决时间',
resolved_by VARCHAR(128) NULL COMMENT '处理人员姓名或账号标识',
resolution_note TEXT NULL COMMENT '处理说明',
PRIMARY KEY (issue_id),
UNIQUE KEY uk_data_quality_fingerprint (issue_fingerprint),
KEY idx_data_quality_entity (entity_type, entity_key),
KEY idx_data_quality_status (resolution_status, severity, issue_code),
KEY idx_data_quality_publication (publication_id),
CONSTRAINT fk_data_quality_publication
FOREIGN KEY (publication_id) REFERENCES dataset_publications(publication_id)
) ENGINE=InnoDB COMMENT='标准化、审核和发布过程发现的数据质量问题';
CREATE TABLE IF NOT EXISTS admission_dimension_mappings (
mapping_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '招录维度映射自增主键',
dimension_type VARCHAR(64) NOT NULL COMMENT '维度类型,如subject_category、education_level或batch',
province_name VARCHAR(64) NOT NULL DEFAULT '' COMMENT '映射适用省份,空字符串表示全国默认',
admission_year SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '映射适用年份,0表示全部年份',
source_value VARCHAR(255) NOT NULL COMMENT '来源数据中的原始值',
canonical_code VARCHAR(64) NOT NULL COMMENT '系统稳定代码',
canonical_name VARCHAR(128) NOT NULL COMMENT '系统标准显示名称',
verification_status VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '核验状态:pending、verified或rejected',
source_id BIGINT UNSIGNED NULL COMMENT '映射依据的数据来源ID',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录最近更新时间',
PRIMARY KEY (mapping_id),
UNIQUE KEY uk_admission_dimension_mapping (
dimension_type, province_name, admission_year, source_value
),
KEY idx_admission_dimension_canonical (
dimension_type, canonical_code, province_name, admission_year
),
CONSTRAINT fk_admission_dimension_source
FOREIGN KEY (source_id) REFERENCES data_sources(source_id)
) ENGINE=InnoDB COMMENT='按省份和年份维护的招录来源维度标准化映射';
CREATE TABLE IF NOT EXISTS province_exam_configs (
exam_config_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '省级考试模式配置自增主键',
province_name VARCHAR(64) NOT NULL COMMENT '省级行政区名称',
exam_year SMALLINT UNSIGNED NOT NULL COMMENT '高考年份',
exam_mode VARCHAR(32) NOT NULL COMMENT '考试模式:traditional、three_plus_one_plus_two或three_plus_three',
total_score DECIMAL(7,2) NULL COMMENT '该省该年普通类高考总分',
rank_basis VARCHAR(128) NULL COMMENT '一分一段的位次计算口径',
verification_status VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '核验状态:pending、verified或rejected',
source_id BIGINT UNSIGNED NULL COMMENT '考试模式配置的数据来源ID',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录最近更新时间',
PRIMARY KEY (exam_config_id),
UNIQUE KEY uk_province_exam_config (province_name, exam_year),
CONSTRAINT fk_province_exam_config_source
FOREIGN KEY (source_id) REFERENCES data_sources(source_id)
) ENGINE=InnoDB COMMENT='各省各年度考试模式和位次口径配置';
INSERT INTO admission_dimension_mappings (
dimension_type, province_name, admission_year, source_value,
canonical_code, canonical_name, verification_status
) VALUES
('subject_category', '', 0, '物理类', 'PHYSICS', '物理类', 'verified'),
('subject_category', '', 0, '物理科目组合', 'PHYSICS', '物理类', 'verified'),
('subject_category', '', 0, '历史类', 'HISTORY', '历史类', 'verified'),
('subject_category', '', 0, '历史科目组合', 'HISTORY', '历史类', 'verified'),
('subject_category', '', 0, '理科', 'SCIENCE', '理科', 'verified'),
('subject_category', '', 0, '理工类', 'SCIENCE', '理科', 'verified'),
('subject_category', '', 0, '文科', 'ARTS', '文科', 'verified'),
('subject_category', '', 0, '文史类', 'ARTS', '文科', 'verified'),
('subject_category', '', 0, '综合', 'COMPREHENSIVE', '综合', 'verified'),
('subject_category', '', 0, '不分科类', 'COMPREHENSIVE', '综合', 'verified'),
('subject_category', '', 0, '中职升学', 'VOCATIONAL', '中职升学', 'verified'),
('education_level', '', 0, '本科', 'UNDERGRADUATE', '本科', 'verified'),
('education_level', '', 0, '专科', 'VOCATIONAL_COLLEGE', '专科', 'verified'),
('education_level', '', 0, '高职专科', 'VOCATIONAL_COLLEGE', '专科', 'verified')
AS incoming
ON DUPLICATE KEY UPDATE
canonical_code=incoming.canonical_code,
canonical_name=incoming.canonical_name,
verification_status=incoming.verification_status;