USE zhiyuantong; CREATE TABLE IF NOT EXISTS review_records ( review_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '审核记录自增主键', entity_type VARCHAR(64) NOT NULL COMMENT '被审核数据类型,如school、admission_group或cutoff_line', entity_key VARCHAR(128) NOT NULL COMMENT '被审核记录的业务主键字符串', review_status VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '审核状态:pending、approved、rejected或needs_review', reviewer_name VARCHAR(128) NULL COMMENT '最近一次审核人员姓名或标识', review_note TEXT NULL COMMENT '最近一次审核意见', reviewed_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 (review_id), UNIQUE KEY uk_review_entity (entity_type, entity_key), KEY idx_review_status (review_status, entity_type) ) ENGINE=InnoDB COMMENT='跨数据表的当前人工审核结论'; CREATE TABLE IF NOT EXISTS review_audit_logs ( review_log_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '审核操作日志自增主键', review_id BIGINT UNSIGNED NOT NULL COMMENT '关联当前审核记录ID', entity_type VARCHAR(64) NOT NULL COMMENT '被审核数据类型快照', entity_key VARCHAR(128) NOT NULL COMMENT '被审核记录业务主键快照', previous_status VARCHAR(32) NULL COMMENT '操作前审核状态,首次审核时为空', new_status VARCHAR(32) NOT NULL COMMENT '操作后审核状态', reviewer_name VARCHAR(128) NOT NULL COMMENT '执行本次审核的人员姓名或标识', review_note TEXT NULL COMMENT '本次审核意见', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '本次审核操作发生时间', PRIMARY KEY (review_log_id), KEY idx_review_logs_review (review_id, created_at), KEY idx_review_logs_entity (entity_type, entity_key, created_at), CONSTRAINT fk_review_logs_review FOREIGN KEY (review_id) REFERENCES review_records(review_id) ) ENGINE=InnoDB COMMENT='人工审核状态变更的不可覆盖历史日志';