Files
opsxdb/docs/GUI-COMPARISON.md
T
logan 2c0bfafd8d 同步完整源码至远程:扁平化重构现状 + 未入库源文件
- 补入库:server/internal/db/dump.go、redis 分页/扫描预算测试、opsxdb-mcp main_test、
  packages/opsxdb-mcp package-lock、docs 审计与对比文档等 37 个新文件
- 含结构扁平化进行中的 80 处修改与 155 处旧结构删除(server/ src/ src-tauri/ 为当前有效源)
- 构建产物(bin/target/dist)与签名私钥仍按规则排除
2026-10-16 03:47:33 +08:00

57 lines
8.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.
# 数据库桌面 GUI 对比与优化依据
日期:2026-10-14。参考目录:`/Users/logan/devops/demo/db-gui` 下的 DBFlux、DBX、RustGrid;目标为 OpsxDB 当前工作区。
产品取舍(用户确认):以 DBFlux 的布局层级与上下文操作为主要参考;DBX 只借鉴实用功能与细致回归。常用操作一两步可达,按目标显示相关菜单,不堆全量管理能力,不为追求功能数量增加学习负担。
## 方法与评分
依据本地仓库截图、用户文档、菜单/编辑器/结果表实现及已有测试进行静态评审。未运行三个参考项目,未测启动速度、内存、海量结果性能或逐引擎兼容性;README 宣称的驱动数量不作为已验证能力。截图可能早于代码。下列分数是相同桌面数据库日常任务下的设计评审分,不是性能或质量认证;OpsxDB 55 分为 2026-10-14 右键与复制补齐**前**的基线,当日一轮「操作闭环」已落地(见 BACKLOG §3)但尚未桌面验收,本文不因此自动上调分数,验收后重评。
每项 10 分:0–3 缺失或断链,4–6 主路径具备但存在明显缺口,7–8 较完整且有边界处理,9–10 系统化实现及回归证据。总分按权重换算为 100 分。
| 维度 | 权重 | DBFlux | DBX | RustGrid | OpsxDB |
|---|---:|---:|---:|---:|---:|
| 布局层级、空间利用、信息密度 | 20% | 9 | 8 | 8 | 6 |
| 视觉一致性、主题、可读性 | 15% | 9 | 8 | 7 | 6 |
| 编辑器、右键与键盘交互完整度 | 20% | 9 | 9 | 7 | 5 |
| 结果浏览、复制、编辑与导出 | 20% | 9 | 9 | 8 | 5 |
| 功能组织与对象上下文 | 15% | 9 | 9 | 7 | 6 |
| 错误反馈、安全与回归证据 | 10% | 8 | 8 | 6 | 5 |
| **加权总分** | **100%** | **89** | **85.5** | **73** | **55** |
## 布局与设计对比
| 项目 | 布局与设计 | 适合借鉴 | 详细不足与取舍 |
|---|---|---|---|
| DBFlux | 连接树 + 文档标签 + 数据区 + 右侧检查器;深浅主题统一;底部状态与任务分离 | 面包屑显示对象上下文、复制/编辑按目标与能力启用、单元格详情、键盘操作 | 三栏同时展开时数据区受挤压;图表、Dashboard、脚本、任务、审计增加学习成本;截图字号偏小,高密度不是所有用户的最佳默认。GPUI 实现不能直接移植进 Tauri |
| DBX | 顶部全局操作、连接/库/Schema 树、多标签、结果工具条与 AI 侧栏;类型信息进表头 | 菜单的目标同步、列操作、复制格式、SQL 编辑器边界测试、连接/库/Schema 分层 | 同屏工具条和图标入口较多;AI 展开后宽表横向空间不足;多数据库/云/CLI/浏览器形态使产品复杂,OpsxDB 不应照搬浏览器操作模式;大量能力不等于每个驱动同等成熟 |
| RustGrid | Navicat 式大图标工具条、左树、中间对象/查询标签、下方结果与分页 | 清晰的对象类别、显式运行/停止、筛选/排序/导出紧邻数据、中文可发现性 | 大图标顶栏与多排工具条占用垂直空间;截图存在标签截断;界面更传统、设置与细节组织不如前两者统一;README 明示早期迭代,不应按文档能力视为稳定验收 |
| OpsxDB | 紧凑顶栏、左侧连接/对象树、编辑器与结果上下分割、可开关 AI;底部状态栏样式存在但未挂载,状态实际经结果工具条与 toast 呈现 | 保留紧凑桌面结构与现有主题;使用已有能力补齐交互 | 图标/文字密度不统一;树、编辑器和结果菜单各自实现;右键主路径已补齐一轮(编辑器/结果/树,2026-10-14 落地待桌面验收);库上下文已随新建查询与模板补齐,PG Schema 语义未完;结果分批 500 行增量显示,仍非真正虚拟滚动;持久化密码是混淆而非钥匙串加密 |
## 功能对比与证据
| 能力 | DBFlux | DBX | RustGrid | OpsxDB 缺口 |
|---|---|---|---|---|
| 编辑器 | 文档工作区、历史、保存查询、键盘命令 | CodeMirror 编辑与上下文菜单、目标同步回归测试 | 高亮、补全、美化、命名查询 | 右键已接入:执行选中/当前、格式化(选区/全文)、注释/取消注释、查找替换、按光标标识符跳 DDL(支持 库.表 限定名);CodeMirror 6 + 库表列补全 + DataGrip 风高亮 + 历史面板。剩余:定义跳转仅限已加载元数据中的明确标识符,别名/CTE/未加载对象后置 |
| 结果网格 | 虚拟表格、检查器、过滤、分页、Copy as Query | 复制格式、列冻结/隐藏、筛选/排序、详情、结果上下文工具 | 分页、编辑、筛选、导入导出 | 右键已接入:复制单元格/行/列(TSV)、列名、排序、列宽、行 JSON/INSERT、筛选结果复制、导出当前结果 CSV/JSON;首批 500 行可增量「继续显示」。剩余:非虚拟滚动;TSV 不含表头;桌面剪贴板与保存文件待验收 |
| 对象操作 | 驱动能力决定菜单,Schema 层级 | 多 Schema 与连接/查询上下文区分 | 对象类别、表/视图/例程与备份 | SELECT/INSERT 模板已入菜单并新开带库查询(UPDATE/DELETE 函数就绪未开放);新建查询携带所点库并持久化;限定名复制、设为默认库、删除库已有。剩余:PG Schema 语义与 search_path;库节点断开/重连归属;表右键直达导出 |
| 设置/安全 | 设置、配置/秘密存储说明、审计与错误关联 | 设置、驱动管理与回归测试较全面 | 主题/语言,XChaCha20-Poly1305 本地密钥存储 | 设置左导航 + 搜索已重构,安全页明示混淆非加密;主题已支持深/浅/随系统(2026-10-14 补齐)。剩余:国际化未实现(无 i18n,文案硬编码中文);凭据仍 Base64 混淆,Keychain 迁移需独立设计 |
| 扩展能力 | 图表、Dashboard、可视化查询、脚本/MCP | 数据传输、ER、AI、多引擎与多部署形态 | 导入导出、备份还原、账户与例程 | 主路径优先,不在此轮加入 BI、权限系统、远程协作或第二套客户端 |
本地证据(相对各参考项目根目录):
- DBFlux:`resources/dbflux.png`、`docs/USAGE.md`、`crates/dbflux_ui_sidebar/src/context_menu.rs`、`crates/dbflux_ui_document/src/data_grid_panel/context_menu/items.rs`、`data_grid_panel/row_inspector.rs`。
- DBX:`docs/screenshot-dark.png`、`docs/screenshot-light.png`、`apps/desktop/src/lib/dataGrid/dataGridContextMenu.ts`、`components/editor/__tests__/QueryEditorContextMenu.spec.ts`、`lib/sql/newQueryContext.ts`(后两项相对 `apps/desktop/src`)。
- RustGrid:`docs/img/img2_cn.png`、`docs/img/img4_cn.png`、`crates/rustgrid-app/src/app/grid_menu.rs`、`app/query_editor.rs`(相对同一 src)、`crates/rustgrid-config/src/secrets.rs`、`README_zh.md`。
- OpsxDB:`src/Workspace.tsx`、`src/SqlEditor.tsx`、`src/ObjectTree.tsx`、`src/ResultPane.tsx`、`src/store.ts`、`src/secrets.ts`、`src/SettingsModal.tsx`、`src/contextActions.ts`(右键复用工具)、`src/tableMetadata.ts`(表元数据目录查询)。
## 结合 BACKLOG 的优化路线
1. **操作闭环(2026-10-14 已落地,待桌面验收)。** 对应 BACKLOG §3:编辑器格式化/注释/查找替换/复制信息与光标标识符定位,库查询上下文,表 SQL 模板与限定名,结果集复制与导出右键;统一菜单的键盘、视口边界与焦点处理。逐项验收清单与剩余边界见 BACKLOG §3,菜单均调用既有逻辑,无仅补文案的占位项。
2. **可理解性(已随上项落地)。** 菜单按目标对象与能力裁剪;复制连接信息不带凭据,INSERT 缺少可靠来源时禁用;保留当前浅深主题和桌面产品边界。
3. **后续专项:数据层与性能。** PG Schema 默认路径的连接池隔离、真正虚拟滚动、整表导出与导入任务进度;需数据库环境与规模数据实测后验收。
4. **后续专项:安全与完整设计系统。** OS Keychain 凭据迁移、统一 SVG 图标、系统主题/语言、统一错误诊断与测试;不能将 Base64 混淆宣传为加密。
本轮完成情况与未验项回写 `BACKLOG.md`,不因菜单增加直接提升评分;优化后需以桌面任务验收重新评估。