-- Ticket25:控制台三类数据的一次用户行为修订、覆盖状态和物理删除支持。 CREATE TABLE t_test_data_revision_action ( action_id BIGINT NOT NULL AUTO_INCREMENT, test_id BIGINT NOT NULL, data_type VARCHAR(16) NOT NULL, operation_type VARCHAR(16) NOT NULL, scope_summary VARCHAR(1000) NOT NULL, identity_summary JSON NOT NULL, changes_summary JSON NULL, reason VARCHAR(500) NOT NULL, operator_id BIGINT NULL, operator_name VARCHAR(64) NOT NULL, created_at_utc DATETIME(3) NOT NULL, PRIMARY KEY (action_id), KEY idx_data_revision_test_time (test_id, data_type, created_at_utc), CONSTRAINT fk_data_revision_test FOREIGN KEY (test_id) REFERENCES t_test (test_id), CONSTRAINT chk_data_revision_type CHECK (data_type IN ('REALTIME', 'STEP', 'CYCLE')), CONSTRAINT chk_data_revision_operation CHECK (operation_type IN ('EDIT', 'IMPORT', 'DELETE')), CONSTRAINT chk_data_revision_reason CHECK (CHAR_LENGTH(TRIM(reason)) > 0) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='测试控制台一次数据修订行为'; CREATE TABLE t_test_data_override ( override_id BIGINT NOT NULL AUTO_INCREMENT, test_id BIGINT NOT NULL, data_type VARCHAR(16) NOT NULL, stable_identity VARCHAR(512) NOT NULL, field_values JSON NULL, deleted TINYINT(1) NOT NULL DEFAULT 0, action_id BIGINT NOT NULL, created_at_utc DATETIME(3) NOT NULL, PRIMARY KEY (override_id), UNIQUE KEY uk_data_override_identity (test_id, data_type, stable_identity), KEY idx_data_override_action (action_id), CONSTRAINT fk_data_override_test FOREIGN KEY (test_id) REFERENCES t_test (test_id), CONSTRAINT fk_data_override_action FOREIGN KEY (action_id) REFERENCES t_test_data_revision_action (action_id), CONSTRAINT chk_data_override_type CHECK (data_type IN ('REALTIME', 'STEP', 'CYCLE')) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='控制台数据最新人工覆盖或删除状态';