Skip to content

QueryLab 产品需求文档

项目目标仓库名:lys-query-lab 当前版本:v1.1 当前本地技术基线:Tauri 2 + Rust + Svelte 5 + CodeMirror 6 首期数据库:MySQL / MariaDB


1. 项目背景

常见数据库客户端通常存在这几类问题:

  • 启动慢、体积大
  • 价格高,对轻度用户不友好
  • 功能很多,但日常操作效率并不高
  • 本地工作流和跨平台体验不够统一

QueryLab 的目标不是复制一个“大而全”的数据库客户端,而是先做好:

本地优先、启动快、常用操作顺手的数据库工作台。


2. 产品定位

2.1 一句话定位

面向开发者、测试和运维的本地优先数据库客户端。

2.2 首期重点

首期只解决最常见的 MySQL 工作流:

  • 建连
  • 查表
  • 写 SQL
  • 看结果
  • 浏览和修改表数据
  • 导入导出

3. 目标用户

用户类型主要需求
后端开发查表、写 SQL、调试数据
测试 / QA验证数据、修正测试环境数据
运维基础查询、导出、排障
数据分析快速查询、结果导出

4. MVP 范围

4.1 必做

  • 连接管理
  • Schema 浏览
  • SQL 编辑器
  • 查询结果展示
  • 表数据浏览与基础编辑
  • 导入 / 导出
  • SQL 历史与模板

4.2 暂不首期做重

  • 多数据库同时成熟支持
  • 团队协作
  • 云同步
  • 复杂 AI 能力
  • 过度商业化功能堆叠

5. 功能需求

5.1 连接管理

  • 新建 / 编辑 / 删除连接
  • 支持 Host / Port / User / Password / Database
  • 支持基础 SSL / SSH Tunnel 扩展位
  • 最近连接、收藏和搜索

5.2 Schema 浏览

  • Database
  • Table
  • View
  • 未来扩展 Procedure / Function

表级动作:

  • 查看字段
  • 查看索引 / 外键
  • 查看建表 SQL
  • 打开表数据
  • 生成常用 SQL

5.3 SQL 编辑器

  • 多 Tab
  • SQL 高亮
  • 自动缩进
  • 执行当前语句 / 选中语句 / 全部语句
  • 错误定位

5.4 查询结果视图

  • 表格展示
  • 分页
  • 排序
  • 结果导出
  • 多结果集展示

5.5 表数据编辑

  • 表格内编辑
  • 新增 / 修改 / 删除行
  • 自动生成对应 SQL
  • 提交前确认

5.6 导入导出

  • CSV / TSV
  • SQL Dump
  • 后续可扩展 Excel

5.7 历史与模板

  • 自动记录 SQL 历史
  • 收藏常用 SQL
  • 模板管理

6. 当前技术方案

6.1 当前本地代码现实

当前工程已经存在,实际技术栈为:

  • Tauri 2
  • Rust
  • Svelte 5
  • Vite
  • CodeMirror 6
  • mysql_async

这意味着后续文档应以当前实现为准,除非未来明确决定做重构。

6.2 架构方向

text
Svelte UI
├── 连接管理
├── Schema Tree
├── SQL Editor (CodeMirror)
├── Results Panel
└── Data Grid

Tauri Bridge

Rust Backend
├── 连接管理
├── MySQL 访问
├── 元数据查询
├── 数据编辑
└── 导入导出

7. 当前工程状态

当前已经存在:

  • Tauri 2 工作区
  • Svelte 5 前端骨架
  • SQL 编辑器组件
  • Schema Tree
  • 结果面板
  • 数据表格等基础组件

当前还需要继续收口的是:

  • 产品边界
  • README 与文档口径
  • MVP 范围优先级

8. 近期路线

第一阶段

  • 修正文档和 README
  • 明确 MVP 范围
  • 收口技术栈描述

第二阶段

  • 完善连接与查询主流程
  • 打通 Schema 浏览与结果面板
  • 补基础导入导出

第三阶段

  • 评估是否达到公开仓库条件
  • 再决定是否创建 / 推送 lys-query-lab

9. 产品原则

  • 本地优先
  • 先做常用高频,不做大而全
  • 工程现实优先于理想中的重构方案
  • 能稳定迭代比一次性堆功能更重要