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:
2026-05-10 13:45:47 +08:00
parent 03a347ea31
commit c07f843587
9 changed files with 1000 additions and 73 deletions
+52 -30
View File
@@ -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 生成作为项目亮点。