This commit is contained in:
2026-05-08 15:16:04 +08:00
parent 042b626ccb
commit 507fb9789a
71 changed files with 14944 additions and 0 deletions
+53
View File
@@ -236,3 +236,56 @@
4. 确定前端页面:列表 / 搜索 / 详情 / 编辑 / 导入
5. 再开始初始化项目结构、Docker、数据库迁移、Excel 导入脚本
## 8. 第二轮落地结论(已按 Excel 实际数据校验)
### 8.1 唯一键结论
- `Engine + Config Name` 在当前工作簿中有 `48` 组重复。
- 即使补上 `Fuel Type`,仍然还有 `19` 组重复。
- 这意味着数据库不能直接把自然键硬编码成唯一约束,否则导入会失败。
### 8.2 `Engine Database` 的稳定字段边界
按同名 `Engine` 聚合后,当前数据呈现出下面的规律:
- 基本稳定:`Name``Cycle``Size``entry Cost`
- 明显会变化:`Fuel Type``Work Env``TVC``Price KD``Classification``Note``Config Name`
所以更稳妥的拆分是:
1. `engine_families`
- `engine_name`
- `part_name`
- `cycle`
- `size_m`
- `entry_cost`
2. `engine_variants`
- 所有配置级字段
- 使用代理主键
- 保留原始自然键字段用于展示和导入告警
### 8.3 当前实现层面的架构选择
- 先采用 **单 Flask 应用**:同时提供
- Jinja 前端页面
- JSON API
- PostgreSQL 数据访问层
- 这样部署到 NAS 时只需要一个应用容器,复杂度最低。
- 如果后续页面复杂度变高,再把前端拆成独立工程也不迟。
### 8.4 已确定的第一批落地内容
1. Flask 项目骨架
2. SQLAlchemy 数据模型
3. Dockerfile 与 docker-compose 基线
4. Excel 巡检脚本
5. Fuel Chart 小工具页面与 API
### 8.5 下一阶段直接衔接的工作
1. 增加数据库迁移目录
2. 实现 Excel -> ORM 的导入脚本
3. 先完成 Engine 列表、详情、编辑页
4. 再补 Communication / Tank / Vehicle Cost 的管理页