81 lines
4.6 KiB
SQL
81 lines
4.6 KiB
SQL
-- QuantumTest 表结构 DDL (MySQL 8.0+)
|
||
-- 生成时间: 2026-05-06
|
||
-- 执行前请确保已创建数据库: CREATE DATABASE IF NOT EXISTS case_platform DEFAULT CHARACTER SET utf8mb4;
|
||
|
||
SET NAMES utf8mb4;
|
||
SET FOREIGN_KEY_CHECKS = 0;
|
||
|
||
-- ─── test_cases ───────────────────────────────────────────────────────────────
|
||
DROP TABLE IF EXISTS `test_cases`;
|
||
CREATE TABLE `test_cases` (
|
||
`id` VARCHAR(50) NOT NULL COMMENT '节点唯一ID',
|
||
`case_id` VARCHAR(50) DEFAULT NULL COMMENT '用例编号,如 TC-001',
|
||
`text` VARCHAR(200) NOT NULL COMMENT '用例标题',
|
||
`module` VARCHAR(100) DEFAULT NULL COMMENT '所属模块',
|
||
`type` VARCHAR(50) NOT NULL DEFAULT 'General' COMMENT '类型: General/Web/API/Mobile',
|
||
`priority` VARCHAR(20) NOT NULL DEFAULT 'P2' COMMENT '优先级: P0/P1/P2/P3',
|
||
`review_status` VARCHAR(50) NOT NULL DEFAULT 'Draft' COMMENT '评审状态: Draft/PendingReview/Reviewed/Deprecated',
|
||
`execution_status` VARCHAR(50) NOT NULL DEFAULT 'UNTESTED' COMMENT '执行状态: UNTESTED/PASS/FAIL/BLOCK',
|
||
`maintainer` VARCHAR(100) DEFAULT NULL COMMENT '维护人(飞书 OpenID 或姓名)',
|
||
`requirement_id` VARCHAR(100) DEFAULT NULL COMMENT '关联需求ID',
|
||
`bug_id` VARCHAR(100) DEFAULT NULL COMMENT '关联缺陷ID',
|
||
`steps` JSON DEFAULT NULL COMMENT '测试步骤 [{action, expected}]',
|
||
`tags` JSON DEFAULT NULL COMMENT '标签列表 string[]',
|
||
`parent_id` VARCHAR(50) DEFAULT NULL COMMENT '父节点ID,NULL 表示根节点',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uq_case_id` (`case_id`),
|
||
KEY `idx_parent_id` (`parent_id`),
|
||
KEY `idx_module` (`module`),
|
||
KEY `idx_priority` (`priority`),
|
||
KEY `idx_review_status` (`review_status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||
COMMENT='测试用例(树状结构,通过 parent_id 关联父子节点)';
|
||
|
||
|
||
-- ─── test_plans ───────────────────────────────────────────────────────────────
|
||
DROP TABLE IF EXISTS `test_plans`;
|
||
CREATE TABLE `test_plans` (
|
||
`id` VARCHAR(50) NOT NULL COMMENT '计划唯一ID',
|
||
`name` VARCHAR(200) NOT NULL COMMENT '计划名称',
|
||
`type` VARCHAR(50) NOT NULL COMMENT '计划类型: Self-test/Regression/Requirement/Smoke',
|
||
`case_ids` JSON DEFAULT NULL COMMENT '关联用例ID列表 string[]',
|
||
`assignee` VARCHAR(100) DEFAULT NULL COMMENT '执行人(飞书 OpenID 或姓名)',
|
||
`created_at` VARCHAR(50) DEFAULT NULL COMMENT '创建时间 ISO8601',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_type` (`type`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||
COMMENT='测试计划';
|
||
|
||
|
||
-- ─── test_tasks ───────────────────────────────────────────────────────────────
|
||
DROP TABLE IF EXISTS `test_tasks`;
|
||
CREATE TABLE `test_tasks` (
|
||
`id` VARCHAR(50) NOT NULL COMMENT '任务唯一ID(UUID)',
|
||
`name` VARCHAR(200) NOT NULL COMMENT '任务名称',
|
||
`status` VARCHAR(50) NOT NULL DEFAULT 'PENDING' COMMENT '任务状态: PENDING/RUNNING/COMPLETED',
|
||
`plan_id` VARCHAR(50) DEFAULT NULL COMMENT '关联测试计划ID',
|
||
`assignee` VARCHAR(100) DEFAULT NULL COMMENT '执行人',
|
||
`created_at` VARCHAR(50) DEFAULT NULL COMMENT '创建时间 ISO8601',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_plan_id` (`plan_id`),
|
||
KEY `idx_status` (`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||
COMMENT='测试执行任务';
|
||
|
||
|
||
-- ─── bugs ─────────────────────────────────────────────────────────────────────
|
||
DROP TABLE IF EXISTS `bugs`;
|
||
CREATE TABLE `bugs` (
|
||
`id` VARCHAR(50) NOT NULL COMMENT '缺陷ID,如 BUG-001',
|
||
`title` VARCHAR(200) NOT NULL COMMENT '缺陷标题',
|
||
`status` VARCHAR(50) NOT NULL DEFAULT 'OPEN' COMMENT '缺陷状态: OPEN/RESOLVED/CLOSED',
|
||
`case_id` VARCHAR(50) DEFAULT NULL COMMENT '关联用例ID',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_case_id` (`case_id`),
|
||
KEY `idx_status` (`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||
COMMENT='缺陷记录';
|
||
|
||
|
||
SET FOREIGN_KEY_CHECKS = 1;
|