USE zhiyuantong; ALTER TABLE admission_groups MODIFY COLUMN segment_code VARCHAR(128) NOT NULL COMMENT '来源中的招生批次或录取段次标识,跨省数据可直接保存完整批次名称', MODIFY COLUMN group_code VARCHAR(64) NOT NULL COMMENT '来源中的院校专业组代码;来源未提供时保存“未标注”', ADD COLUMN batch_name VARCHAR(255) NOT NULL DEFAULT '' COMMENT '来源文件中的完整招生批次名称' AFTER subject_category; ALTER TABLE admission_cutoff_lines MODIFY COLUMN segment_code VARCHAR(128) NOT NULL COMMENT '来源中的招生批次或录取段次标识,跨省数据可直接保存完整批次名称', MODIFY COLUMN group_code VARCHAR(64) NOT NULL COMMENT '来源中的院校专业组代码;来源未提供时保存“未标注”', MODIFY COLUMN cutoff_score DECIMAL(7,2) NULL COMMENT '院校或院校专业组最低投档分;来源缺失时为空', ADD COLUMN batch_name VARCHAR(255) NOT NULL DEFAULT '' COMMENT '来源文件中的完整录取批次名称' AFTER education_level, ADD COLUMN cutoff_rank INT UNSIGNED NULL COMMENT '最低投档分对应的最低位次' AFTER cutoff_score, ADD COLUMN control_score DECIMAL(7,2) NULL COMMENT '该记录对应批次的省级控制分数' AFTER cutoff_rank, ADD COLUMN score_diff DECIMAL(7,2) NULL COMMENT '最低投档分与省级控制分数的差值' AFTER control_score, ADD COLUMN admit_count INT UNSIGNED NULL COMMENT '来源公布的实际录取或投档人数' AFTER score_diff, ADD COLUMN school_province VARCHAR(64) NULL COMMENT '来源数据标注的院校所在省份' AFTER admit_count, ADD COLUMN school_nature VARCHAR(32) NULL COMMENT '来源数据标注的院校办学性质' AFTER school_province; ALTER TABLE control_score_lines MODIFY COLUMN education_level VARCHAR(128) NOT NULL COMMENT '来源中的批次或控制线层次名称,如本科批、专科批或特殊类型招生控制线'; ALTER TABLE admission_major_plans MODIFY COLUMN plan_count INT UNSIGNED NULL COMMENT '计划人数;来源未公布或开放数据集缺失时为空'; CREATE TABLE IF NOT EXISTS admission_major_lines ( major_line_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '专业录取分数记录自增主键', admission_group_id BIGINT UNSIGNED NULL COMMENT '匹配到院校专业组表的记录ID,未匹配时为空', province_name VARCHAR(64) NOT NULL COMMENT '招生省份名称', admission_year SMALLINT UNSIGNED NOT NULL COMMENT '招生年度', admission_category VARCHAR(32) NOT NULL COMMENT '招生类别,如普通类', subject_category VARCHAR(64) NOT NULL COMMENT '科类或首选科目类别,如物理类、历史类或综合', education_level VARCHAR(32) NOT NULL COMMENT '培养层次,如本科或高职专科', batch_name VARCHAR(255) NOT NULL COMMENT '来源文件中的完整录取批次名称', source_school_code VARCHAR(32) NOT NULL COMMENT '招生省份当年使用的院校代码原值', school_name_raw VARCHAR(255) NOT NULL COMMENT '来源文件中的院校名称原值', group_code VARCHAR(64) NOT NULL COMMENT '来源文件中的院校专业组代码,未提供时为“未标注”', major_code VARCHAR(64) NOT NULL COMMENT '来源文件中的专业代码,未提供时为空字符串', major_name VARCHAR(255) NOT NULL COMMENT '来源文件中的专业或专业类名称', major_note TEXT NULL COMMENT '专业包含范围、方向或其他来源备注', subject_requirements VARCHAR(255) NULL COMMENT '首选科目、再选科目或其他选科要求', min_score DECIMAL(7,2) NULL COMMENT '该专业录取最低分;来源缺失时为空', min_rank INT UNSIGNED NULL COMMENT '该专业录取最低分对应位次', max_score DECIMAL(7,2) NULL COMMENT '该专业录取最高分', avg_score DECIMAL(7,2) NULL COMMENT '该专业录取平均分', admit_count INT UNSIGNED NULL COMMENT '该专业实际录取人数', school_province VARCHAR(64) NULL COMMENT '来源数据标注的院校所在省份', school_nature VARCHAR(32) NULL COMMENT '来源数据标注的院校办学性质', is_985 BOOLEAN NULL COMMENT '来源数据是否标记为985高校,1是、0否、空为未标注', is_211 BOOLEAN NULL COMMENT '来源数据是否标记为211高校,1是、0否、空为未标注', school_id CHAR(36) NULL COMMENT '匹配到全国院校基础库的稳定学校UUID,未匹配时为空', source_row_number INT UNSIGNED NOT NULL COMMENT '记录在原始CSV文件中的数据行号', source_id BIGINT UNSIGNED NOT NULL COMMENT '该记录对应的数据来源ID', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间', PRIMARY KEY (major_line_id), UNIQUE KEY uk_major_lines_source_row (source_id, source_row_number), KEY idx_major_lines_lookup (province_name, admission_year, subject_category, batch_name, min_score), KEY idx_major_lines_school (school_id), KEY idx_major_lines_group (admission_group_id), KEY idx_major_lines_major_name (major_name), CONSTRAINT fk_major_lines_group FOREIGN KEY (admission_group_id) REFERENCES admission_groups(admission_group_id), CONSTRAINT fk_major_lines_school FOREIGN KEY (school_id) REFERENCES schools(school_id), CONSTRAINT fk_major_lines_source FOREIGN KEY (source_id) REFERENCES data_sources(source_id) ) ENGINE=InnoDB COMMENT='按省份、年度、院校专业组和专业保存的专业录取分数与位次'; CREATE TABLE IF NOT EXISTS stg_gc_enrollment_plans ( source_id BIGINT UNSIGNED NOT NULL COMMENT '关联data_sources表的数据来源ID', source_row_number INT UNSIGNED NOT NULL COMMENT '原始CSV文件中的数据行号', province_name VARCHAR(64) NOT NULL COMMENT '由数据集目录映射后的标准省份名称', admission_year SMALLINT UNSIGNED NOT NULL COMMENT '原始记录中的招生年度', batch_name TEXT NULL COMMENT '原始记录中的招生批次名称', subject_category TEXT NULL COMMENT '原始记录中的科类或选科类别', source_school_code TEXT NULL COMMENT '原始记录中的省级招生院校代码', school_name_raw TEXT NULL COMMENT '原始记录中的院校名称', group_code TEXT NULL COMMENT '原始记录中的院校专业组代码', major_code TEXT NULL COMMENT '原始记录中的专业代码', major_name TEXT NULL COMMENT '原始记录中的专业名称', major_note TEXT NULL COMMENT '原始记录中的专业备注', subject_requirements TEXT NULL COMMENT '原始记录中的选科要求', plan_count_text TEXT NULL COMMENT '原始记录中的计划人数文本', study_duration TEXT NULL COMMENT '原始记录中的学制文本', tuition_text TEXT NULL COMMENT '原始记录中的学费文本', PRIMARY KEY (source_id, source_row_number) ) ENGINE=InnoDB COMMENT='GaokaoCompass招生计划CSV导入暂存表'; CREATE TABLE IF NOT EXISTS stg_gc_school_admissions ( source_id BIGINT UNSIGNED NOT NULL COMMENT '关联data_sources表的数据来源ID', source_row_number INT UNSIGNED NOT NULL COMMENT '原始CSV文件中的数据行号', province_name VARCHAR(64) NOT NULL COMMENT '由数据集目录映射后的标准省份名称', admission_year SMALLINT UNSIGNED NOT NULL COMMENT '原始记录中的招生年度', subject_category TEXT NULL COMMENT '原始记录中的科类或选科类别', batch_name TEXT NULL COMMENT '原始记录中的录取批次名称', source_school_code TEXT NULL COMMENT '原始记录中的省级招生院校代码', school_name_raw TEXT NULL COMMENT '原始记录中的院校名称', group_code TEXT NULL COMMENT '原始记录中的院校专业组代码', subject_requirements TEXT NULL COMMENT '原始记录中的选科要求', min_score_text TEXT NULL COMMENT '原始记录中的最低分文本', min_rank_text TEXT NULL COMMENT '原始记录中的最低位次文本', control_score_text TEXT NULL COMMENT '原始记录中的省级控制分文本', score_diff_text TEXT NULL COMMENT '原始记录中的线差文本', admit_count_text TEXT NULL COMMENT '原始记录中的录取人数文本', school_province TEXT NULL COMMENT '原始记录中的院校所在省份', school_nature TEXT NULL COMMENT '原始记录中的办学性质', is_985_text TEXT NULL COMMENT '原始记录中的985标记文本', is_211_text TEXT NULL COMMENT '原始记录中的211标记文本', PRIMARY KEY (source_id, source_row_number) ) ENGINE=InnoDB COMMENT='GaokaoCompass院校投档线CSV导入暂存表'; CREATE TABLE IF NOT EXISTS stg_gc_major_admissions ( source_id BIGINT UNSIGNED NOT NULL COMMENT '关联data_sources表的数据来源ID', source_row_number INT UNSIGNED NOT NULL COMMENT '原始CSV文件中的数据行号', province_name VARCHAR(64) NOT NULL COMMENT '由数据集目录映射后的标准省份名称', admission_year SMALLINT UNSIGNED NOT NULL COMMENT '原始记录中的招生年度', subject_category TEXT NULL COMMENT '原始记录中的科类或选科类别', batch_name TEXT NULL COMMENT '原始记录中的录取批次名称', source_school_code TEXT NULL COMMENT '原始记录中的省级招生院校代码', school_name_raw TEXT NULL COMMENT '原始记录中的院校名称', group_code TEXT NULL COMMENT '原始记录中的院校专业组代码', major_code TEXT NULL COMMENT '原始记录中的专业代码', major_name TEXT NULL COMMENT '原始记录中的专业名称', major_note TEXT NULL COMMENT '原始记录中的专业备注', subject_requirements TEXT NULL COMMENT '原始记录中的选科要求', min_score_text TEXT NULL COMMENT '原始记录中的最低分文本', min_rank_text TEXT NULL COMMENT '原始记录中的最低位次文本', max_score_text TEXT NULL COMMENT '原始记录中的最高分文本', avg_score_text TEXT NULL COMMENT '原始记录中的平均分文本', admit_count_text TEXT NULL COMMENT '原始记录中的录取人数文本', school_province TEXT NULL COMMENT '原始记录中的院校所在省份', school_nature TEXT NULL COMMENT '原始记录中的办学性质', is_985_text TEXT NULL COMMENT '原始记录中的985标记文本', is_211_text TEXT NULL COMMENT '原始记录中的211标记文本', PRIMARY KEY (source_id, source_row_number) ) ENGINE=InnoDB COMMENT='GaokaoCompass专业录取线CSV导入暂存表'; CREATE TABLE IF NOT EXISTS stg_gc_score_ranges ( source_id BIGINT UNSIGNED NOT NULL COMMENT '关联data_sources表的数据来源ID', source_row_number INT UNSIGNED NOT NULL COMMENT '原始CSV文件中的数据行号', province_name VARCHAR(64) NOT NULL COMMENT '由数据集目录映射后的标准省份名称', admission_year SMALLINT UNSIGNED NOT NULL COMMENT '原始记录中的高考年度', subject_category TEXT NULL COMMENT '原始记录中的科类或选科类别', batch_name TEXT NULL COMMENT '原始记录中的批次名称', control_score_text TEXT NULL COMMENT '原始记录中的控制分文本', score_text TEXT NULL COMMENT '原始记录中的分数文本', score_range_text TEXT NULL COMMENT '原始记录中的合并分数区间文本', segment_count_text TEXT NULL COMMENT '原始记录中的本分段人数文本', cumulative_count_text TEXT NULL COMMENT '原始记录中的累计人数文本', rank_range_text TEXT NULL COMMENT '原始记录中的位次区间文本', PRIMARY KEY (source_id, source_row_number) ) ENGINE=InnoDB COMMENT='GaokaoCompass一分一段CSV导入暂存表';