84 lines
4.1 KiB
Markdown
84 lines
4.1 KiB
Markdown
# 会话记录 - 删除操作
|
||
|
||
## 元数据
|
||
- 需求编号:003-05
|
||
- 需求名称:删除操作
|
||
- 开始时间:2026-02-03
|
||
- 结束时间:2026-02-03
|
||
- 当前阶段:阶段 4:数据库结构生成
|
||
|
||
## 阶段记录
|
||
|
||
### 阶段 1:需求定义
|
||
- 状态:已完成
|
||
- 需求文档:[2026-01-28-003-05-删除操作.md](../requirements/sub/2026-01-28-003-05-删除操作.md)
|
||
|
||
### 阶段 2:方案设计
|
||
- 状态:已完成
|
||
- 设计文档:[2026-02-03-003-05-删除操作-设计.md](../design/2026-02-03-003-05-删除操作-设计.md)
|
||
- 关键设计决策:
|
||
1. **架构设计**:采用分层架构(Controller → Service → Factory → Metadata API),复用 003-01 的连接管理
|
||
2. **同步删除**:`deleteMetadata` 是同步调用,立即返回删除结果
|
||
3. **技术选型**:
|
||
- Spring Boot 2.7.x + Spring @Async 异步记录删除历史
|
||
- MyBatis Plus 3.5.x 简化数据库操作
|
||
- Salesforce Metadata API 原生 DeleteResult 和 Error
|
||
4. **数据模型**:创建 `datai_metadata_delete` 表,包含 12 个字段和 5 个索引
|
||
5. **核心算法**:
|
||
- 删除元数据:参数校验 → 获取连接 → 执行删除 → 处理结果 → 异步记录
|
||
- 批量删除:循环调用单个删除 → 聚合结果 → 单个失败不影响其他
|
||
6. **接口设计**:3 个 REST API 接口(删除元数据、批量删除、获取历史)
|
||
7. **VO 设计**:定义 DeleteResultVO、MetadataDeleteVO 用于前后端数据交换
|
||
8. **错误处理**:4 个专用错误码(DELETE_001 ~ DELETE_004)
|
||
9. **性能优化**:异步日志、批量处理、索引优化
|
||
10. **安全设计**:权限控制、参数校验、错误信息隐藏
|
||
|
||
### 阶段 3:方案决策
|
||
- 状态:已完成
|
||
- 决策文档:[2026-02-03-003-05-ADR-删除操作技术选型.md](../decisions/2026-02-03-003-05-ADR-删除操作技术选型.md)
|
||
- 关键决策:
|
||
1. **删除操作执行方式**:同步执行(API 特性、简单可靠、即时反馈)
|
||
2. **批量删除策略**:串行执行(避免并发问题、错误隔离、资源控制)
|
||
3. **日志记录方式**:异步记录(性能优化、解耦、Spring 原生支持)
|
||
4. **错误处理策略**:继续执行(批量场景,最大化成功率、完整结果返回)
|
||
- 替代方案分析:
|
||
- 异步执行删除操作:适用于大量删除任务,但无法即时反馈
|
||
- 并行执行批量删除:提高效率但增加复杂度,可能导致 API 限流
|
||
- 同步记录日志:保证完整性但影响响应时间
|
||
- 事务性批量删除:Salesforce API 不支持事务回滚
|
||
|
||
### 阶段 4:数据库结构生成
|
||
- 状态:已完成
|
||
- 涉及数据库变更:**是**
|
||
- SQL 脚本:[2026-02-03-003-05-删除操作日志.sql](../sql/2026-02-03-003-05-删除操作日志.sql)
|
||
- 数据库变更内容:
|
||
1. **新建表**:`datai_metadata_delete`
|
||
- 12 个字段:id, metadata_type, full_name, success, error_message, delete_time, user_id, create_by, create_time, update_by, update_time, del_flag
|
||
- 5 个索引:idx_metadata_type, idx_full_name, idx_delete_time, idx_user_id, idx_create_time
|
||
2. **表用途**:记录 Metadata API 删除操作的历史和结果
|
||
3. **字段说明**:
|
||
- metadata_type: 元数据类型
|
||
- full_name: 元数据完整名称
|
||
- success: 是否删除成功(0否 1是)
|
||
- error_message: 错误消息
|
||
- delete_time: 删除时间
|
||
|
||
## 待完成阶段
|
||
- [x] 阶段 1:需求定义
|
||
- [x] 阶段 2:方案设计
|
||
- [x] 阶段 3:方案决策
|
||
- [x] 阶段 4:数据库结构生成
|
||
- [ ] 阶段 5:提示词生成
|
||
- [ ] 阶段 6:代码生成
|
||
- [ ] 阶段 7:会话记录
|
||
- [ ] 阶段 8:变更日志
|
||
- [ ] 阶段 9:复盘和 API 文档
|
||
- [ ] 阶段 10:代码提交
|
||
|
||
## 相关文档
|
||
- [需求文档](../requirements/sub/2026-01-28-003-05-删除操作.md)
|
||
- [设计文档](../design/2026-02-03-003-05-删除操作-设计.md)
|
||
- [决策记录 - 删除操作技术选型](../decisions/2026-02-03-003-05-ADR-删除操作技术选型.md)
|
||
- [SQL 脚本](../sql/2026-02-03-003-05-删除操作日志.sql)
|
||
- [连接管理设计文档](../design/2026-02-02-003-01-连接管理-设计.md)
|