-- 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='控制台数据最新人工覆盖或删除状态';
|