FE/backend/schema_mysql.sql

81 lines
4.6 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 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 '父节点IDNULL 表示根节点',
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 '任务唯一IDUUID',
`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;