update
This commit is contained in:
@@ -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 的管理页
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user