Add row and schema editing features
Implement safe SQLite row editing and supported schema edits, and update the project analysis documents to match the current feature set. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+52
-30
@@ -11,9 +11,10 @@ HyperSql 是一个面向学生和 SQLite 初学者的轻量级数据库图形化
|
||||
3. 数据库表结构和表数据需要以更直观的方式展示。
|
||||
4. 大表或较多查询结果需要分页显示,避免界面卡顿和阅读困难。
|
||||
5. 创建数据库、创建表、删除表等常见操作需要简洁清晰的图形界面。
|
||||
6. 删除数据库文件和删除表等危险操作需要确认流程,降低误操作风险。
|
||||
6. 删除数据库文件、删除表和删除数据行等危险操作需要确认流程,降低误操作风险。
|
||||
7. 表结构修改需要尊重 SQLite 原生能力,只提供安全可控的结构编辑入口。
|
||||
|
||||
当前版本已经完成了数据库文件管理、表/视图浏览、表结构查看、表数据分页查看、SQL 执行、SQL 结果分页、创建表和删除表等核心功能。数据行编辑、数据库备份恢复和 AI 辅助 SQL 生成作为后续扩展功能继续开发。
|
||||
当前版本已经完成了数据库文件管理、表/视图浏览、表结构查看、表数据分页查看、SQL 执行、SQL 结果分页、创建表、删除表、数据行编辑和 SQLite 支持范围内的表结构编辑等核心功能。数据库备份恢复和 AI 辅助 SQL 生成作为后续扩展功能继续开发。
|
||||
|
||||
## 2. 用户需求分析
|
||||
|
||||
@@ -35,8 +36,10 @@ HyperSql 是一个面向学生和 SQLite 初学者的轻量级数据库图形化
|
||||
6. 用户在 SQL 执行区输入 SQL 并查看执行结果。
|
||||
7. 用户通过图形界面创建新表。
|
||||
8. 用户删除不需要的普通表,并在删除前进行确认。
|
||||
9. 用户刷新表列表,并希望保持当前选中的表不变。
|
||||
10. 后续版本中,用户可以通过图形界面编辑数据、备份恢复数据库,或使用 AI 辅助生成 SQL。
|
||||
9. 用户通过图形界面新增、修改或删除表中的数据行。
|
||||
10. 用户在 SQLite 支持范围内重命名表、新增字段或重命名字段。
|
||||
11. 用户刷新表列表,并希望保持当前选中的表不变。
|
||||
12. 后续版本中,用户可以备份恢复数据库,或使用 AI 辅助生成 SQL。
|
||||
|
||||
## 3. 功能性需求
|
||||
|
||||
@@ -50,8 +53,9 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
| SQL 执行 | 支持用户输入 SQL 语句并执行,显示结果或错误 | 已实现 |
|
||||
| SQL 结果分页 | 查询结果按每页 100 行分页显示 | 已实现 |
|
||||
| 表管理 | 支持通过 UI 创建表,支持删除选中普通表 | 已实现 |
|
||||
| 表结构安全编辑 | 支持重命名表、新增字段、重命名字段 | 已实现 |
|
||||
| 状态与错误提示 | 显示连接状态、执行结果和错误信息 | 已实现 |
|
||||
| 数据编辑 | 支持新增、修改、删除表数据行 | 待实现 |
|
||||
| 数据编辑 | 支持新增、修改、删除表数据行,并支持可识别单表 SQL 结果编辑 | 已实现 |
|
||||
| 备份与恢复 | 支持数据库文件备份和从备份文件恢复 | 待实现 |
|
||||
| AI SQL 生成 | 根据表结构和用户自然语言需求生成 SQL | 待实现 |
|
||||
|
||||
@@ -78,7 +82,20 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
|
||||
当前实现状态:已实现,并已修复选择表时数据和结构不同步的问题。
|
||||
|
||||
### 4.3 表数据查看
|
||||
### 4.3 表结构安全编辑
|
||||
|
||||
- 系统应支持在 SQLite 原生能力范围内编辑普通表结构。
|
||||
- 系统应支持重命名普通表。
|
||||
- 系统应支持新增字段。
|
||||
- 系统应支持重命名字段。
|
||||
- 系统不应对视图启用结构编辑。
|
||||
- 系统不应实现 SQLite 不能直接安全支持的字段类型修改、非空约束修改、默认值修改、主键修改和字段顺序调整。
|
||||
- 结构变更前应提示用户确认。
|
||||
- 结构变更后应刷新表列表、表结构和表数据。
|
||||
|
||||
当前实现状态:已实现。当前版本只实现 SQLite 原生 `ALTER TABLE` 相对安全支持的重命名表、新增字段和重命名字段。
|
||||
|
||||
### 4.4 表数据查看
|
||||
|
||||
- 系统应支持点击表名后查看表数据。
|
||||
- 系统应以表格形式展示数据。
|
||||
@@ -90,7 +107,7 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
|
||||
当前实现状态:已实现。表数据分页采用数据库侧分页,通过 `LIMIT` 和 `OFFSET` 每次只查询当前页数据。
|
||||
|
||||
### 4.4 SQL 执行
|
||||
### 4.5 SQL 执行
|
||||
|
||||
- 系统应提供 SQL 输入区域。
|
||||
- 系统应支持执行查询、插入、更新、删除、建表、删表等 SQL 语句。
|
||||
@@ -102,7 +119,7 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
|
||||
当前实现状态:已实现。SQL 结果分页采用客户端分页,即 SQL 查询结果先读取到内存中,再按页显示。
|
||||
|
||||
### 4.5 创建表
|
||||
### 4.6 创建表
|
||||
|
||||
- 系统应提供图形化创建表界面,不能只依赖用户手写 `CREATE TABLE`。
|
||||
- 创建表界面应简洁易用。
|
||||
@@ -118,7 +135,7 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
|
||||
当前实现状态:已实现。
|
||||
|
||||
### 4.6 删除表
|
||||
### 4.7 删除表
|
||||
|
||||
- 系统应支持删除左侧选中的普通表。
|
||||
- 系统不应通过“删除表”功能删除视图。
|
||||
@@ -132,13 +149,14 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
|
||||
### 5.1 数据行编辑
|
||||
|
||||
- 系统后续应支持在图形界面中新增表数据。
|
||||
- 系统后续应支持修改表格中的数据。
|
||||
- 系统后续应支持删除选中的数据行。
|
||||
- 对修改和删除操作,应提供必要的确认或错误提示。
|
||||
- 数据编辑应优先保证主键识别和 SQL 生成安全。
|
||||
- 系统应支持在表数据界面新增表数据行。
|
||||
- 系统应支持直接修改表格中的数据,修改后立即保存到 SQLite 数据库。
|
||||
- 系统应支持删除选中的数据行,删除前必须提示确认。
|
||||
- 系统应通过主键或 SQLite `rowid` 定位数据行,避免误更新。
|
||||
- 系统应在可识别的单表 SQL 查询结果中支持新增、修改和删除数据行。
|
||||
- JOIN、聚合、表达式、视图等无法安全反写的 SQL 查询结果应保持只读。
|
||||
|
||||
当前实现状态:待实现。
|
||||
当前实现状态:已实现。
|
||||
|
||||
### 5.2 数据库备份与恢复
|
||||
|
||||
@@ -165,13 +183,13 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
|
||||
| 需求类型 | 说明 | 当前体现 |
|
||||
|---|---|---|
|
||||
| 易用性 | 界面清晰,操作流程简单,适合初学者使用 | 已采用菜单、工具栏、表格和创建表对话框 |
|
||||
| 可靠性 | 数据库连接、SQL 执行和表操作失败时应有错误提示 | 已实现基础错误提示 |
|
||||
| 安全性 | 删除数据库、删除表等危险操作前应确认 | 已实现确认流程 |
|
||||
| 易用性 | 界面清晰,操作流程简单,适合初学者使用 | 已采用菜单、工具栏、表格、创建表对话框、数据行编辑按钮和结构编辑按钮 |
|
||||
| 可靠性 | 数据库连接、SQL 执行、数据编辑和表操作失败时应有错误提示 | 已实现基础错误提示 |
|
||||
| 安全性 | 删除数据库、删除表、删除数据行和结构变更等操作前应确认 | 已实现确认流程 |
|
||||
| 性能 | 对常见小型 SQLite 数据库能够快速打开和查询 | 表数据采用数据库侧分页,降低大表加载压力 |
|
||||
| 可维护性 | 采用模块化设计,便于后续扩展和维护 | 已划分数据库连接、元数据读取、SQL 执行、工具类和控制器 |
|
||||
| 可维护性 | 采用模块化设计,便于后续扩展和维护 | 已划分数据库连接、元数据读取、SQL 执行、行数据服务、结构编辑服务、工具类和控制器 |
|
||||
| 兼容性 | 支持常见 SQLite 数据库文件,适配主流桌面系统 | 基于 JavaFX 和 SQLite JDBC,具备跨平台基础 |
|
||||
| 可扩展性 | 后续可扩展数据编辑、备份恢复和 AI SQL 生成 | 已保留 SQL 执行和元数据读取基础能力 |
|
||||
| 可扩展性 | 后续可扩展备份恢复和 AI SQL 生成 | 已保留 SQL 执行、元数据读取、行数据服务和结构编辑服务基础能力 |
|
||||
|
||||
## 7. 需求优先级
|
||||
|
||||
@@ -182,7 +200,8 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
| 高 | 新建/打开/关闭 SQLite 数据库、浏览表结构、查看表数据、执行 SQL | 已实现 |
|
||||
| 高 | 表数据分页、SQL 查询结果分页、刷新表列表保留当前选择 | 已实现 |
|
||||
| 中 | 创建表、删除表、删除数据库文件 | 已实现 |
|
||||
| 中 | 数据行新增、修改、删除 | 待实现 |
|
||||
| 中 | 数据行新增、修改、删除 | 已实现 |
|
||||
| 中 | SQLite 支持范围内的表结构编辑 | 已实现 |
|
||||
| 中 | 数据库备份与恢复 | 待实现 |
|
||||
| 低 | AI 辅助 SQL 生成、SQL 历史记录、界面进一步美化 | 待实现 |
|
||||
|
||||
@@ -194,7 +213,7 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
|
||||
2. **中优先级需求**
|
||||
- 提升软件实用性和数据安全性。
|
||||
- 当前已经完成创建表、删除表和删除数据库文件,后续应继续完成数据行编辑和备份恢复。
|
||||
- 当前已经完成创建表、删除表、删除数据库文件、数据行编辑和表结构安全编辑,后续应继续完成备份恢复。
|
||||
|
||||
3. **低优先级需求**
|
||||
- 作为项目亮点和扩展功能。
|
||||
@@ -204,12 +223,13 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
|
||||
当前 HyperSql 仍存在以下限制:
|
||||
|
||||
1. 还不能通过图形界面直接新增、修改或删除表中的数据行。
|
||||
2. 还没有实现数据库备份与恢复功能。
|
||||
3. 还没有实现 AI 辅助 SQL 生成功能。
|
||||
4. SQL 查询结果分页属于客户端分页,查询结果会先全部读取到内存中,不适合特别大的查询结果。
|
||||
5. 当前删除表功能只支持删除普通表,不支持删除视图。
|
||||
6. 当前主要面向 SQLite,不支持 MySQL、PostgreSQL 等远程数据库。
|
||||
1. 还没有实现数据库备份与恢复功能。
|
||||
2. 还没有实现 AI 辅助 SQL 生成功能。
|
||||
3. SQL 查询结果分页属于客户端分页,查询结果会先全部读取到内存中,不适合特别大的查询结果。
|
||||
4. SQL 结果编辑只支持可识别的单表查询,JOIN、聚合、表达式等复杂结果保持只读。
|
||||
5. 表结构编辑只支持 SQLite 原生安全支持的重命名表、新增字段和重命名字段,不支持需要重建表的复杂结构修改。
|
||||
6. 当前删除表功能只支持删除普通表,不支持删除视图。
|
||||
7. 当前主要面向 SQLite,不支持 MySQL、PostgreSQL 等远程数据库。
|
||||
|
||||
## 9. 需求分析总结
|
||||
|
||||
@@ -224,6 +244,8 @@ HyperSql 的功能性需求主要包括以下模块:
|
||||
5. SQL 语句执行和 SQL 查询结果分页显示。
|
||||
6. 图形化创建表。
|
||||
7. 删除普通表。
|
||||
8. 状态提示、错误提示和危险操作确认。
|
||||
8. 数据行新增、修改和删除。
|
||||
9. SQLite 支持范围内的表结构安全编辑。
|
||||
10. 状态提示、错误提示和危险操作确认。
|
||||
|
||||
后续开发应优先完成数据行增删改查和数据库备份恢复,使系统从“可浏览、可执行 SQL、可管理表结构”进一步发展为“可完整管理 SQLite 数据库”的工具。在时间允许的情况下,再实现 AI 辅助 SQL 生成作为项目亮点。
|
||||
后续开发应优先完成数据库备份恢复,使系统从“可浏览、可执行 SQL、可编辑数据、可管理表结构”进一步发展为“可完整管理 SQLite 数据库”的工具。在时间允许的情况下,再实现 AI 辅助 SQL 生成作为项目亮点。
|
||||
Reference in New Issue
Block a user