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. 产品原则
- 本地优先
- 先做常用高频,不做大而全
- 工程现实优先于理想中的重构方案
- 能稳定迭代比一次性堆功能更重要