- 在 README.md 中新增数据库设计规范、代码生成配置规范和改进规划的文档链接 - 在 CacheDb 结构体中添加历史记录开关 HistorySet - 实现历史记录的写入逻辑,记录每次缓存的新增和修改 - 更新缓存的获取和设置方法,支持历史记录的管理 - 优化数据库表的初始化和迁移逻辑,确保历史表的创建与管理
4.3 KiB
4.3 KiB
HoTime 改进规划
本文档记录 HoTime 框架的待改进项和设计思考,供后续版本迭代参考。
一、备注语法优化
现状
当前字段备注语法使用空格、冒号、大括号组合:
`status` int COMMENT '状态:0-正常,1-异常 这是数据库备注{这是前端提示}'
问题
- 多种分隔符混用,不够直观
- 显示名称如需包含特殊字符可能冲突
改进方向
使用 | 作为统一分隔符,保持干净清爽:
-- 方案 A:简洁直观
`status` int COMMENT '状态|0-正常,1-异常|请选择状态'
-- 解析:显示名称|选项|提示
-- 方案 B:保持兼容,空格后内容仍作为数据库备注
`status` int COMMENT '状态|0-正常,1-异常|请选择状态 这是数据库备注'
待确认
- 是否需要保留空格后的数据库备注功能
- 如果只有提示没有选项,如何表示(如
名称||请输入名称) - 是否向后兼容旧语法
二、SQLite 备注支持
现状
SQLite 不支持表/字段备注,需要手动在配置文件中设置。
问题
SQLite 项目配置工作量大,不够"快速开发"。
待探索方案
- 配置文件方案(当前):通过 admin.json 手动配置,学习成本可接受
- 轻量级方案:考虑是否有更简单的替代方案,但不增加复杂度
暂时结论
当前方案虽不完美,但符合"简单好用"原则,暂不改动。
三、软删除支持
现状
框架暂不支持软删除。
设计考量
软删除存在以下问题:
- 数据安全性:软删除的数据仍可被恢复或误用
- 查询复杂度:所有查询需要额外过滤条件
- 存储膨胀:删除的数据持续占用空间
待探索方案
- 可选软删除:通过配置决定某张表是否启用软删除
- 日志表方案:独立的操作日志表,只写不删不改
- 记录所有增删改操作
- 原表正常物理删除
- 需要时可从日志恢复
- 归档表方案:删除时移动到归档表
倾向方案
日志表方案更符合数据安全和审计需求:
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。
可能的增强
- 自动识别:只有两个
_id外键的表识别为关联表 - 专用接口:生成关联管理接口(批量绑定/解绑)
- 级联查询:自动生成带关联数据的查询
待确认
- 是否需要此功能
- 如何保持简单性
五、自动填充字段扩展
现状
自动填充:
create_time:新增时自动填充当前时间modify_time:新增/编辑时自动填充当前时间
可能的扩展
| 字段 | 填充时机 | 填充内容 |
|---|---|---|
| create_by | 新增 | 当前用户ID |
| modify_by | 新增/编辑 | 当前用户ID |
| create_ip | 新增 | 客户端IP |
待确认
- 是否需要扩展
- 字段命名规范
六、版本控制/乐观锁
现状
version 字段规则存在但未启用。
待确认
- 是否需要支持乐观锁
- 如果不需要,是否从默认规则中移除
改进优先级
| 优先级 | 改进项 | 状态 |
|---|---|---|
| 高 | 备注语法优化(| 分隔符) |
待设计 |
| 中 | 软删除/日志表支持 | 待设计 |
| 低 | 多对多关联表增强 | 待评估 |
| 低 | 自动填充字段扩展 | 待评估 |
更新记录
| 日期 | 内容 |
|---|---|
| 2026-01-24 | 初始版本,记录分析结果和待改进项 |