Private
Public Access
1
0
Files
u-desk/docs/04-功能迭代/GO-DESK-2.数据库客户端/设计文档/需求设计/需求.md

107 lines
6.1 KiB
Markdown
Raw 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.
# 数据库客户端需求
基于 go-desk 实现数据库连接客户端工具,简单易用,易用性超过 dbeaver。
## 支持数据库
- 当前支持MySQL、Redis、MongoDB
- 计划支持Oracle、ES、ClickHouse、PostgreSQL、SQLite
## **升级-优化-Bug**
```
--- 以下内容AI只可读取不要修改人工维护 ---
FIXME: 当前考虑重要(一定会尝试,提前预留或推进)
1、增加功能区左侧功能区分上下两部分下面增加一个 效果参考数据库连接的效果 ,把 历史的sql编辑器书签sql 模板列表 都放到这个地方;
2、当前最小化 mvp 需要做到 能用好用, 现在还有诸多bug ,使用不便利, 这个我们还要逐一整理出来, 也可以通过网络获取一个最小化版本的数据库客户端用户最关心的核心点,然后有针对性的迭代改进
3、精细控制文档内容 不要 随性创建过多过量低质量文档,这样根本不利于阅读维护,
4、实现我们的 go-desk 升级更新 方便后续做迭代分发,
FIXME: 当前考虑预留,但是不要破环当前主要的设计,破环性太大就不要做实质性的编码预留,未来可能会走的方向
1、为未来service-client 部署做预留扩展希望做最少的代码逻辑精准实现本地桌面与远端机器的联动类似于bs->bcs混合版本
2、文本编辑区支持不止 sql 一种类型文本内容默认sql其他支持 txthtmljs/tscssmd 的语法高亮编辑及高效的结果渲染预览
3、模板文件 支持加密本密码本概念,存储的 content 需要做加密存储,必须输入作者密钥才可解密数据
FIXME: 优化及 BUG 修复:
全局:
1、sql编辑区与结果区支持调整动态拖拽调整比例
2、未看到右键菜单
sql编辑区(文本编辑区):
1、第二个sql编辑区的 输入框未正常展示,添加后不能输入内容
2、sql 编辑区高度当内容超过区域能展示范围的时候, 没有滚动条导致不能展示出其他超出的内容,
3、编辑区所选择的数据库连接及database, 选中后下次加载默认选中,
4、选中数据连接或database 的时候 sql编辑区 不用整个区域刷新,现在看到 sql输入框也 reload这个不必要
5、表结构区点击表的时候 未展示
--- 以上内容AI只可读取不要修改人工维护 ---
```
## 页面布局
1. **数据库列表视图区域**:左侧,树形结构展示连接、数据库、表
2. **执行语句编辑区域**中间SQL编辑器暂时只保留一个编辑区
3. **结果展示区域**:底部,结果表格/JSON + 消息日志
## 数据库连接区
- **连接列表**:树形结构,按类型分组,懒加载数据库/表列表,显示连接状态和类型图标
- **连接管理**:新建/编辑/删除连接支持MySQL/Redis/MongoDB密码加密存储测试连接
- **快捷功能**~~书签管理入口、SQL模板入口~~(已删除)
- **数据存储**SQLite存储密码AES加密自动加载
## SQL编辑器
- **编辑器功能**SQL/JS语法高亮根据数据库类型行号自动换行F5执行完整Ctrl+Enter执行选中
- **内容自动存储**SQLite存储内容自动保存防抖1秒关联连接ID
- **执行功能**:执行前检查连接,结果在结果区域显示
- **工具栏**:执行按钮、执行选中按钮、折叠/展开按钮,显示当前连接信息
- **界面布局**:编辑器占据主要空间,支持折叠/展开
- ⚠️ **多Tab支持**暂时移除仅保留一个SQL编辑区
## 结果区域
- **结果tab**:表格/JSON展示显示统计信息行数、执行时间自动生成列定义
- **消息tab**记录执行事件SQL、时间、结果消息类型info/success/error/warning最多保留100条
- **区域控制**:支持折叠/展开编辑器结果区域高度可调200-600px编辑器隐藏时结果区域全屏
## ~~书签管理~~ ❌ 已删除
- **状态**:功能已删除
## ~~SQL模板管理~~ ❌ 已删除
- **状态**:功能已删除
## 表结构查询
- **MySQL**显示列信息字段名、类型、是否为空、默认值、注释通过DESCRIBE获取
- **MongoDB**:显示文档示例、字段统计、索引信息、文档总数
- **Redis**显示Key类型、TTL、值大小等信息
- **查询方式**:点击连接树节点(待实现界面展示)
## 索引查询
- **MySQL**显示索引信息索引名、列名、唯一性、类型通过SHOW INDEX获取
- **MongoDB**:索引信息包含在集合结构中
- **Redis**:不支持索引
- **查询方式**通过API接口查询待实现界面展示
## 多数据库类型支持
- **MySQL**SQL执行SELECT/INSERT/UPDATE/DELETE/DDL数据库/表列表,表结构,索引查询
- **Redis**命令执行GET/SET/HGET/HSET等Key列表模式匹配Key信息TYPE/TTL/SIZE数据库选择0-15
- **MongoDB**查询执行find/aggregate数据库/集合列表,集合结构(文档示例、字段统计、索引)
- **类型识别**根据连接类型自动切换编辑器语言MySQL=SQL高亮Redis/MongoDB=JS高亮自动设置默认内容和按钮文本
## 数据存储
- **SQLite存储**连接配置加密密码、SQL编辑器内容~~书签数据、模板数据~~(已删除),自动迁移表结构
- **数据加密**连接密码AES加密存储解密后用于连接测试和执行
- **数据持久化**连接配置立即生效SQL编辑器内容防抖保存1秒编辑器显示状态保存到localStorage
## 快捷键
- **编辑器**F5执行完整Ctrl+Enter执行选中CodeMirror默认快捷键
- **界面**:折叠/展开编辑器
## 待实现功能
1. SQL格式化
2. 代码补全(表名、列名、关键字提示)
3. 多Tab支持暂时移除后续版本恢复
4. 数据导出CSV/SQL/JSON
5. 消息历史清空
6. 表结构界面展示
7. 索引界面展示
8. 右键菜单(连接树节点)
9. 智能SQL接入大模型
10. 文件/SQL文件管理导入/导出)