Add AI SQL generation and update project docs
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+58
-30
@@ -11,10 +11,11 @@ HyperSql 是一个面向学生和 SQLite 初学者的轻量级数据库图形化
|
||||
3. 数据库表结构和表数据需要以更直观的方式展示。
|
||||
4. 大表或较多查询结果需要分页显示,避免界面卡顿和阅读困难。
|
||||
5. 创建数据库、创建表、删除表等常见操作需要简洁清晰的图形界面。
|
||||
6. 删除数据库文件、删除表和删除数据行等危险操作需要确认流程,降低误操作风险。
|
||||
6. 删除数据库文件、删除表、删除数据行、恢复数据库等危险操作需要确认流程,降低误操作风险。
|
||||
7. 表结构修改需要尊重 SQLite 原生能力,只提供安全可控的结构编辑入口。
|
||||
8. 用户希望通过 AI 根据当前数据库结构和自然语言需求辅助生成 SQL,但生成结果不应自动执行。
|
||||
|
||||
当前版本已经完成了数据库文件管理、表/视图浏览、表结构查看、表数据分页查看、SQL 执行、SQL 结果分页、创建表、删除表、数据行编辑和 SQLite 支持范围内的表结构编辑等核心功能。数据库备份恢复和 AI 辅助 SQL 生成作为后续扩展功能继续开发。
|
||||
当前版本已经完成了数据库文件管理、表/视图浏览、表结构查看、表数据分页查看、SQL 执行、SQL 结果分页、创建表、删除表、数据行编辑、SQLite 支持范围内的表结构编辑、数据库备份恢复和 AI 辅助 SQL 生成等核心与扩展功能。
|
||||
|
||||
## 2. 用户需求分析
|
||||
|
||||
@@ -39,7 +40,11 @@ HyperSql 是一个面向学生和 SQLite 初学者的轻量级数据库图形化
|
||||
9. 用户通过图形界面新增、修改或删除表中的数据行。
|
||||
10. 用户在 SQLite 支持范围内重命名表、新增字段或重命名字段。
|
||||
11. 用户刷新表列表,并希望保持当前选中的表不变。
|
||||
12. 后续版本中,用户可以备份恢复数据库,或使用 AI 辅助生成 SQL。
|
||||
12. 用户将当前数据库备份为另一个文件。
|
||||
13. 用户从备份文件恢复当前数据库,并在恢复前得到确认提示。
|
||||
14. 用户在 UI 中配置 AI Provider、API Key、Base URL 和模型。
|
||||
15. 用户输入自然语言需求,由 AI 根据当前数据库结构生成 SQL。
|
||||
16. 用户检查 AI 生成的 SQL,然后手动点击执行。
|
||||
|
||||
## 3. 功能性需求
|
||||
|
||||
@@ -56,8 +61,9 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
| 表结构安全编辑 | 支持重命名表、新增字段、重命名字段 | 已实现 |
|
||||
| 状态与错误提示 | 显示连接状态、执行结果和错误信息 | 已实现 |
|
||||
| 数据编辑 | 支持新增、修改、删除表数据行,并支持可识别单表 SQL 结果编辑 | 已实现 |
|
||||
| 备份与恢复 | 支持数据库文件备份和从备份文件恢复 | 待实现 |
|
||||
| AI SQL 生成 | 根据表结构和用户自然语言需求生成 SQL | 待实现 |
|
||||
| 备份与恢复 | 支持数据库文件备份和从备份文件恢复 | 已实现 |
|
||||
| AI SQL 生成 | 根据表结构和用户自然语言需求生成 SQL,支持 OpenAI 兼容接口和 Anthropic Claude | 已实现 |
|
||||
| UI 优化 | 整理菜单、工具栏和侧边栏操作入口,降低界面拥挤程度 | 已实现 |
|
||||
|
||||
## 4. 核心功能需求说明
|
||||
|
||||
@@ -160,36 +166,53 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
|
||||
### 5.2 数据库备份与恢复
|
||||
|
||||
- 系统后续应支持将当前数据库复制为备份文件。
|
||||
- 系统后续应支持用户选择备份文件进行恢复。
|
||||
- 系统应支持将当前数据库复制为备份文件。
|
||||
- 系统应支持用户选择备份文件进行恢复。
|
||||
- 系统应在恢复前提示用户确认,避免覆盖当前数据库。
|
||||
- 系统应避免将当前数据库文件本身作为备份目标或恢复来源。
|
||||
- 系统应在恢复前关闭当前数据库连接,恢复后重新打开数据库并刷新界面。
|
||||
- 系统应显示备份或恢复的执行结果。
|
||||
|
||||
当前实现状态:待实现。
|
||||
当前实现状态:已实现。
|
||||
|
||||
### 5.3 AI 辅助 SQL 生成
|
||||
|
||||
- 系统后续应读取当前数据库的表结构信息。
|
||||
- 系统后续应根据表结构自动生成 AI 提示词。
|
||||
- 系统应读取当前数据库的表结构和视图结构信息。
|
||||
- 系统应根据表结构自动生成 AI 提示词。
|
||||
- 用户可以输入自然语言需求。
|
||||
- 系统支持 OpenAI 兼容接口和 Anthropic Claude。
|
||||
- 用户应能在 UI 中设置 Provider、API Key、Base URL、模型和超时时间。
|
||||
- API Key 只应保存在本次运行内存中,不应写入本地配置文件。
|
||||
- 系统调用 AI API 生成 SQL 语句。
|
||||
- 用户可以检查并确认生成的 SQL 后再执行。
|
||||
- AI 生成的 SQL 不应直接自动执行,应由用户确认后手动执行。
|
||||
- 系统不应向 AI 发送表数据,只发送数据库结构和用户需求。
|
||||
- 若 AI 调用失败,系统应显示错误提示。
|
||||
- AI 生成的 SQL 不应直接自动执行,应由用户确认后执行。
|
||||
- 若生成 SQL 包含可能修改数据或结构的关键词,系统应提示用户谨慎检查。
|
||||
|
||||
当前实现状态:待实现。
|
||||
当前实现状态:已实现。
|
||||
|
||||
### 5.4 界面整理优化
|
||||
|
||||
- 系统菜单应包含完整功能入口。
|
||||
- 工具栏应保留高频操作,避免按钮过多导致界面拥挤。
|
||||
- 表相关操作应放在侧边栏附近,方便用户针对当前表操作。
|
||||
- 危险或低频操作应主要放在菜单中,减少误触。
|
||||
|
||||
当前实现状态:已实现。
|
||||
|
||||
## 6. 非功能性需求
|
||||
|
||||
| 需求类型 | 说明 | 当前体现 |
|
||||
|---|---|---|
|
||||
| 易用性 | 界面清晰,操作流程简单,适合初学者使用 | 已采用菜单、工具栏、表格、创建表对话框、数据行编辑按钮和结构编辑按钮 |
|
||||
| 可靠性 | 数据库连接、SQL 执行、数据编辑和表操作失败时应有错误提示 | 已实现基础错误提示 |
|
||||
| 安全性 | 删除数据库、删除表、删除数据行和结构变更等操作前应确认 | 已实现确认流程 |
|
||||
| 易用性 | 界面清晰,操作流程简单,适合初学者使用 | 已采用菜单、工具栏、侧边栏、表格、创建表对话框、数据行编辑按钮、结构编辑按钮和 AI 生成入口 |
|
||||
| 可靠性 | 数据库连接、SQL 执行、数据编辑、表操作、备份恢复和 AI 调用失败时应有错误提示 | 已实现基础错误提示 |
|
||||
| 安全性 | 删除数据库、删除表、删除数据行、恢复数据库和结构变更等操作前应确认;AI 生成 SQL 不自动执行 | 已实现确认流程和 AI 生成后手动执行机制 |
|
||||
| 性能 | 对常见小型 SQLite 数据库能够快速打开和查询 | 表数据采用数据库侧分页,降低大表加载压力 |
|
||||
| 可维护性 | 采用模块化设计,便于后续扩展和维护 | 已划分数据库连接、元数据读取、SQL 执行、行数据服务、结构编辑服务、工具类和控制器 |
|
||||
| 隐私性 | AI 功能不应发送表数据,API Key 不应持久化到本地文件 | AI 提示只包含表/视图结构和用户需求,API Key 仅保存在运行内存中 |
|
||||
| 可维护性 | 采用模块化设计,便于后续扩展和维护 | 已划分数据库连接、元数据读取、SQL 执行、行数据服务、结构编辑服务、备份恢复逻辑、AI 客户端和工具类 |
|
||||
| 兼容性 | 支持常见 SQLite 数据库文件,适配主流桌面系统 | 基于 JavaFX 和 SQLite JDBC,具备跨平台基础 |
|
||||
| 可扩展性 | 后续可扩展备份恢复和 AI SQL 生成 | 已保留 SQL 执行、元数据读取、行数据服务和结构编辑服务基础能力 |
|
||||
| 可扩展性 | 后续可扩展更多 AI Provider、SQL 历史记录和界面美化 | 已提供 AI Provider 适配层和独立 AI SQL 生成服务 |
|
||||
|
||||
## 7. 需求优先级
|
||||
|
||||
@@ -202,8 +225,9 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
| 中 | 创建表、删除表、删除数据库文件 | 已实现 |
|
||||
| 中 | 数据行新增、修改、删除 | 已实现 |
|
||||
| 中 | SQLite 支持范围内的表结构编辑 | 已实现 |
|
||||
| 中 | 数据库备份与恢复 | 待实现 |
|
||||
| 低 | AI 辅助 SQL 生成、SQL 历史记录、界面进一步美化 | 待实现 |
|
||||
| 中 | 数据库备份与恢复 | 已实现 |
|
||||
| 低 | AI 辅助 SQL 生成、界面进一步美化 | 已实现 |
|
||||
| 低 | SQL 历史记录、更多数据库类型支持 | 后续可扩展 |
|
||||
|
||||
### 优先级说明
|
||||
|
||||
@@ -213,23 +237,24 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
|
||||
2. **中优先级需求**
|
||||
- 提升软件实用性和数据安全性。
|
||||
- 当前已经完成创建表、删除表、删除数据库文件、数据行编辑和表结构安全编辑,后续应继续完成备份恢复。
|
||||
- 当前已经完成创建表、删除表、删除数据库文件、数据行编辑、表结构安全编辑和备份恢复。
|
||||
|
||||
3. **低优先级需求**
|
||||
- 作为项目亮点和扩展功能。
|
||||
- 可根据开发进度调整实现程度。
|
||||
- 当前已经完成 AI 辅助 SQL 生成和基础界面整理,后续可继续扩展 SQL 历史记录或更多界面美化。
|
||||
|
||||
## 8. 当前版本限制
|
||||
|
||||
当前 HyperSql 仍存在以下限制:
|
||||
|
||||
1. 还没有实现数据库备份与恢复功能。
|
||||
2. 还没有实现 AI 辅助 SQL 生成功能。
|
||||
3. SQL 查询结果分页属于客户端分页,查询结果会先全部读取到内存中,不适合特别大的查询结果。
|
||||
4. SQL 结果编辑只支持可识别的单表查询,JOIN、聚合、表达式等复杂结果保持只读。
|
||||
5. 表结构编辑只支持 SQLite 原生安全支持的重命名表、新增字段和重命名字段,不支持需要重建表的复杂结构修改。
|
||||
6. 当前删除表功能只支持删除普通表,不支持删除视图。
|
||||
7. 当前主要面向 SQLite,不支持 MySQL、PostgreSQL 等远程数据库。
|
||||
1. SQL 查询结果分页属于客户端分页,查询结果会先全部读取到内存中,不适合特别大的查询结果。
|
||||
2. SQL 结果编辑只支持可识别的单表查询,JOIN、聚合、表达式等复杂结果保持只读。
|
||||
3. 表结构编辑只支持 SQLite 原生安全支持的重命名表、新增字段和重命名字段,不支持需要重建表的复杂结构修改。
|
||||
4. 当前删除表功能只支持删除普通表,不支持删除视图。
|
||||
5. 当前主要面向 SQLite,不支持 MySQL、PostgreSQL 等远程数据库。
|
||||
6. AI 生成 SQL 的质量取决于用户配置的模型和 API 服务,生成结果仍需要用户检查后再执行。
|
||||
7. API Key 只在本次运行中保存,关闭软件后需要重新输入。
|
||||
8. 当前未实现 SQL 历史记录功能。
|
||||
|
||||
## 9. 需求分析总结
|
||||
|
||||
@@ -246,6 +271,9 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
7. 删除普通表。
|
||||
8. 数据行新增、修改和删除。
|
||||
9. SQLite 支持范围内的表结构安全编辑。
|
||||
10. 状态提示、错误提示和危险操作确认。
|
||||
10. 数据库备份和从备份恢复。
|
||||
11. AI 辅助 SQL 生成。
|
||||
12. 状态提示、错误提示和危险操作确认。
|
||||
13. 菜单、工具栏和侧边栏入口整理。
|
||||
|
||||
后续开发应优先完成数据库备份恢复,使系统从“可浏览、可执行 SQL、可编辑数据、可管理表结构”进一步发展为“可完整管理 SQLite 数据库”的工具。在时间允许的情况下,再实现 AI 辅助 SQL 生成作为项目亮点。
|
||||
当前 HyperSql 已经从“可浏览、可执行 SQL、可编辑数据、可管理表结构”进一步发展为“可较完整管理 SQLite 数据库,并提供 AI 辅助 SQL 生成”的轻量级数据库管理工具。后续可以围绕测试、演示体验、SQL 历史记录和更细致的界面美化继续迭代。
|
||||
|
||||
Reference in New Issue
Block a user