# 后端需求 - 字段映射保存与读取 ## 问题描述 前端 Edit Mapping 页面中,用户输入的字段中文映射名(mapped_name)在保存后,第二次打开时丢失了。 ## 原因分析 1. **保存时**:前端只保存了表级别信息,没有保存字段的中文映射 2. **加载时**:前端每次都从 `/database/check` 重新获取表结构,没有读取已保存的映射数据 ## 需求 ### 1. 保存字段映射 前端保存时需要传递每个字段的中文映射名,后端需要存储这些数据。 请求结构: ```json { "name": "数据库名", "sub_tables": [ { "parent_table": "users", "sub_table_name": "用户表", "sub_table_comment": "用户表", "fields": [ { "column_name": "id", "mapped_name": "编号" }, { "column_name": "username", "mapped_name": "用户名" } ] } ] } ``` ### 2. 返回字段映射 后端在返回表结构时,需要同时返回已保存的字段映射信息。 返回结构: ```json { "success": true, "tables": [ { "table_name": "users", "table_comment": "用户表", "ddl": "...", "columns": [ { "column_name": "id", "data_type": "int", "column_type": "int(10)", "column_comment": "", "mapped_name": "编号" }, { "column_name": "username", "data_type": "varchar", "column_type": "varchar(50)", "column_comment": "用户名", "mapped_name": "用户名" } ] } ] } ``` ### 3. 数据存储 - 可以在 `sub_table_info` 表中增加 `fields` JSON 字段存储字段映射 - 或者创建新的关联表 `sub_table_fields` ## 影响范围 - `server/internal/service/database_service.go` - Create/Update 方法 - `server/internal/model/` - 数据模型修改 - 子表映射的数据存储结构 ## 优先级 高 - 用户输入的映射数据丢失影响使用体验