# HoTime 改进规划 本文档记录 HoTime 框架的待改进项和设计思考,供后续版本迭代参考。 --- ## 一、备注语法优化 ### 现状 当前字段备注语法使用空格、冒号、大括号组合: ```sql `status` int COMMENT '状态:0-正常,1-异常 这是数据库备注{这是前端提示}' ``` ### 问题 - 多种分隔符混用,不够直观 - 显示名称如需包含特殊字符可能冲突 ### 改进方向 使用 `|` 作为统一分隔符,保持干净清爽: ```sql -- 方案 A:简洁直观 `status` int COMMENT '状态|0-正常,1-异常|请选择状态' -- 解析:显示名称|选项|提示 -- 方案 B:保持兼容,空格后内容仍作为数据库备注 `status` int COMMENT '状态|0-正常,1-异常|请选择状态 这是数据库备注' ``` ### 待确认 - [ ] 是否需要保留空格后的数据库备注功能 - [ ] 如果只有提示没有选项,如何表示(如 `名称||请输入名称`) - [ ] 是否向后兼容旧语法 --- ## 二、SQLite 备注支持 ### 现状 SQLite 不支持表/字段备注,需要手动在配置文件中设置。 ### 问题 SQLite 项目配置工作量大,不够"快速开发"。 ### 待探索方案 1. **配置文件方案(当前)**:通过 admin.json 手动配置,学习成本可接受 2. **轻量级方案**:考虑是否有更简单的替代方案,但不增加复杂度 ### 暂时结论 当前方案虽不完美,但符合"简单好用"原则,暂不改动。 --- ## 三、软删除支持 ### 现状 框架暂不支持软删除。 ### 设计考量 软删除存在以下问题: - 数据安全性:软删除的数据仍可被恢复或误用 - 查询复杂度:所有查询需要额外过滤条件 - 存储膨胀:删除的数据持续占用空间 ### 待探索方案 1. **可选软删除**:通过配置决定某张表是否启用软删除 2. **日志表方案**:独立的操作日志表,只写不删不改 - 记录所有增删改操作 - 原表正常物理删除 - 需要时可从日志恢复 3. **归档表方案**:删除时移动到归档表 ### 倾向方案 日志表方案更符合数据安全和审计需求: ```sql CREATE TABLE `_operation_log` ( `id` int AUTO_INCREMENT, `table_name` varchar(100) COMMENT '操作表名', `record_id` int COMMENT '记录ID', `operation` varchar(20) COMMENT '操作类型:insert,update,delete', `old_data` text COMMENT '操作前数据(JSON)', `new_data` text COMMENT '操作后数据(JSON)', `operator_id` int COMMENT '操作人ID', `operator_table` varchar(100) COMMENT '操作人表名', `create_time` datetime COMMENT '操作时间', PRIMARY KEY (`id`) ) COMMENT='操作日志'; ``` ### 待确认 - [ ] 是否所有表都记录日志 - [ ] 日志保留策略(永久/定期归档) - [ ] 是否提供恢复接口 --- ## 四、多对多关联表增强 ### 现状 关联表(如 `user_role`)按普通表处理,生成标准 CRUD。 ### 可能的增强 1. **自动识别**:只有两个 `_id` 外键的表识别为关联表 2. **专用接口**:生成关联管理接口(批量绑定/解绑) 3. **级联查询**:自动生成带关联数据的查询 ### 待确认 - [ ] 是否需要此功能 - [ ] 如何保持简单性 --- ## 五、自动填充字段扩展 ### 现状 自动填充: - `create_time`:新增时自动填充当前时间 - `modify_time`:新增/编辑时自动填充当前时间 ### 可能的扩展 | 字段 | 填充时机 | 填充内容 | |------|----------|----------| | create_by | 新增 | 当前用户ID | | modify_by | 新增/编辑 | 当前用户ID | | create_ip | 新增 | 客户端IP | ### 待确认 - [ ] 是否需要扩展 - [ ] 字段命名规范 --- ## 六、版本控制/乐观锁 ### 现状 `version` 字段规则存在但未启用。 ### 待确认 - [ ] 是否需要支持乐观锁 - [ ] 如果不需要,是否从默认规则中移除 --- ## 改进优先级 | 优先级 | 改进项 | 状态 | |--------|--------|------| | 高 | 备注语法优化(`\|` 分隔符) | 待设计 | | 中 | 软删除/日志表支持 | 待设计 | | 低 | 多对多关联表增强 | 待评估 | | 低 | 自动填充字段扩展 | 待评估 | --- ## 更新记录 | 日期 | 内容 | |------|------| | 2026-01-24 | 初始版本,记录分析结果和待改进项 |