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
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;
|
|
|