# 后端需求 - DDL 编辑功能 ## 问题描述 前端 Database 页面的 Table Mapping 功能已从"字段映射"改为"DDL 编辑"模式。后端需要支持保存和读取 DDL 数据。 ## 需求 ### 1. 保存 DDL 前端保存时发送 `ddl` 字段而非 `fields` 字段。 请求结构: ```json { "name": "数据库名", "sub_tables": [ { "parent_table": "users", "sub_table_name": "用户表", "sub_table_comment": "用户表", "ddl": "CREATE TABLE users (...)" } ] } ``` ### 2. 后端处理 - `CreateSubTableRequest` 已有 `DDL string` 字段(已添加) - `UpdateSubTableRequest` 已有 `DDL string` 字段(已添加) - `UpdateDatabaseRequest` 已有 `SubTables []CreateSubTableRequest` 字段(已添加) ### 3. Service 层修改 **sub_table_service.go**: 1. `Create` 函数 - 添加 DDL 字段赋值: ```go info := &model.SubTableInfo{ // ... 现有字段 DDL: req.DDL, } ``` 2. `Update` 函数 - 添加 DDL 更新逻辑: ```go // 更新 DDL info.DDL = req.DDL ``` **database_service.go 或 handler**: 在 `Update` 方法中处理 `SubTables` 字段: - 当前端传入 `sub_tables` 时,需要创建或更新对应的子表记录(包括 DDL) - 遍历 `sub_tables`,调用 `SubTableService.Create` 或 `SubTableService.Update` ## 影响范围 - `server/internal/service/sub_table_service.go` - Create/Update 方法 - `server/internal/service/database_service.go` 或 handler - Update 方法处理 SubTables ## 状态 - [x] 前端修改完成 - [x] 后端修改已完成