-- ============================================================ -- 帽石系统 - 检测/考试记录表 -- 适用数据库:MySQL 5.7+ -- 字符集:utf8mb4(兼容中文与特殊符号) -- ============================================================ DROP TABLE IF EXISTS `t_capstone_exam`; CREATE TABLE `t_capstone_exam` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', `candidate_id` VARCHAR(64) NOT NULL COMMENT '考生ID(由外部系统同步至对方系统,作为跨系统关联键)', `capstone_no` VARCHAR(64) NOT NULL COMMENT '帽石编号', `actual_position_x` DECIMAL(10,3) DEFAULT NULL COMMENT '实际位置 X(标准/目标坐标)', `actual_position_y` DECIMAL(10,3) DEFAULT NULL COMMENT '实际位置 Y(标准/目标坐标)', `measured_x` DECIMAL(10,3) DEFAULT NULL COMMENT '实测数据 X(考生实测坐标)', `measured_y` DECIMAL(10,3) DEFAULT NULL COMMENT '实测数据 Y(考生实测坐标)', `setter` VARCHAR(64) DEFAULT NULL COMMENT '出题人', `score` DECIMAL(6,2) DEFAULT NULL COMMENT '成绩', `exam_time` DATETIME NOT NULL COMMENT '考试时间', `qualified` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '是否合格:0-不合格,1-合格', `sync_status` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '同步状态:0-未同步,1-已同步(考生ID已同步至对方)', `remark` VARCHAR(255) DEFAULT NULL COMMENT '备注', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '删除标志:0-未删除,1-已删除', -- 位置偏差由“实测-实际”实时计算,不额外存储,避免数据不一致 `deviation_x` DECIMAL(11,3) GENERATED ALWAYS AS (measured_x - actual_position_x) VIRTUAL COMMENT '位置偏差X(实测-实际)', `deviation_y` DECIMAL(11,3) GENERATED ALWAYS AS (measured_y - actual_position_y) VIRTUAL COMMENT '位置偏差Y(实测-实际)', PRIMARY KEY (`id`), -- 同一考生、同一帽石、同一次考试时间只允许一条记录,防止重复录入 UNIQUE KEY `uk_candidate_capstone_time` (`candidate_id`, `capstone_no`, `exam_time`), KEY `idx_candidate` (`candidate_id`), KEY `idx_capstone` (`capstone_no`), KEY `idx_exam_time` (`exam_time`), KEY `idx_qualified` (`qualified`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='帽石系统检测/考试记录表';