更新
This commit is contained in:
Generated
+10
@@ -0,0 +1,10 @@
|
|||||||
|
# 默认忽略的文件
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# 基于编辑器的 HTTP 客户端请求
|
||||||
|
/httpRequests/
|
||||||
|
# 已忽略包含查询文件的默认文件夹
|
||||||
|
/queries/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
Generated
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/.venv" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="jdk" jdkName="Python 3.12 (KSP_Project)" jdkType="Python SDK" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
||||||
Generated
+4
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.12 (KSP_Project)" project-jdk-type="Python SDK" />
|
||||||
|
</project>
|
||||||
Generated
+8
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/KSP_Project.iml" filepath="$PROJECT_DIR$/.idea/KSP_Project.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
Generated
+6
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,238 @@
|
|||||||
|
# 项目梳理(第一轮)
|
||||||
|
|
||||||
|
## 1. 已确认的基础约束
|
||||||
|
|
||||||
|
- 技术方向:`Python + Flask` 后端,前端需要单独界面。
|
||||||
|
- 数据库:`PostgreSQL`。
|
||||||
|
- 部署方式:前后端都部署在 NAS 上,并以 `Docker` 形式运行。
|
||||||
|
- 敏感信息:**不读取** `.env`,仅参考 `.env.example`。
|
||||||
|
- 当前代码状态:项目基本还是空白,`main.py` 仍是 PyCharm 初始化示例。
|
||||||
|
|
||||||
|
## 2. 环境变量格式(来自 `.env.example`)
|
||||||
|
|
||||||
|
当前已知 PG 连接相关变量格式如下:
|
||||||
|
|
||||||
|
- `PGHOST`
|
||||||
|
- `PGPORT`
|
||||||
|
- `PGUSER`
|
||||||
|
- `PGPASSWORD`
|
||||||
|
- `PGDATABASE`
|
||||||
|
- `APP_ENV`
|
||||||
|
- `APP_PORT`
|
||||||
|
|
||||||
|
说明:后续 Flask 项目可以直接按这一组变量读取数据库连接信息。
|
||||||
|
|
||||||
|
## 3. Excel 工作簿结构梳理
|
||||||
|
|
||||||
|
文件:`KSP Engine Tweak Chart.xlsx`
|
||||||
|
|
||||||
|
实际工作表如下:
|
||||||
|
|
||||||
|
1. `Engine Database`(核心)
|
||||||
|
2. `Communication`
|
||||||
|
3. `work area`(可忽略)
|
||||||
|
4. `Fuel Chart`
|
||||||
|
5. `Tank Chart`
|
||||||
|
6. `Launch Cost`
|
||||||
|
7. `KSP Vehicle Cost`
|
||||||
|
8. `Tube`(可忽略)
|
||||||
|
9. `TQ series`(可忽略)
|
||||||
|
|
||||||
|
## 4. 各表初步理解
|
||||||
|
|
||||||
|
### 4.1 `Engine Database`
|
||||||
|
|
||||||
|
- 规模:约 `478` 条数据。
|
||||||
|
- 核心程度最高,后续数据库设计应以此为中心。
|
||||||
|
- 表头如下:
|
||||||
|
1. `Engine`
|
||||||
|
2. `Fuel Type`
|
||||||
|
3. `Cycle`
|
||||||
|
4. `Work Env`
|
||||||
|
5. `SL-ISP`
|
||||||
|
6. `Vac-ISP`
|
||||||
|
7. `Min Thrust`
|
||||||
|
8. `Max Thrust`
|
||||||
|
9. `Mass`
|
||||||
|
10. `TWR`
|
||||||
|
11. `Throttle Range`
|
||||||
|
12. `TVC`
|
||||||
|
13. `Size`
|
||||||
|
14. `Price KD`
|
||||||
|
15. `entry Cost`
|
||||||
|
16. `Ignitions`
|
||||||
|
17. `Classification`
|
||||||
|
18. `Note`
|
||||||
|
19. `Name`
|
||||||
|
20. `Config Name`
|
||||||
|
21. `TechRequired`
|
||||||
|
22. `Config Note`
|
||||||
|
|
||||||
|
#### 观察
|
||||||
|
|
||||||
|
- `TWR` 基本是公式列,公式看起来是:`Max Thrust / 9.80665 / Mass`。
|
||||||
|
- `Throttle Range` 基本也是公式列,公式看起来是:`Min Thrust / Max Thrust`。
|
||||||
|
- 同一个 `Engine` 会有多条记录,代表不同配置/燃料/版本。
|
||||||
|
- `Name`、`Config Name`、`TechRequired` 有较多空值,说明这些字段并不是所有引擎都有。
|
||||||
|
- 仅用 `(Name, Config Name)` 作为唯一键 **不可靠**,发现有重复情况。
|
||||||
|
|
||||||
|
#### 目前推测
|
||||||
|
|
||||||
|
后续数据库大概率需要拆成两层:
|
||||||
|
|
||||||
|
- `engine_base`:存引擎主体信息(名称、来源、尺寸、分类等)
|
||||||
|
- `engine_variant`:存具体配置(燃料、ISP、推力、点火次数、科技树要求等)
|
||||||
|
|
||||||
|
但这需要你确认字段含义后再定。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.2 `Communication`
|
||||||
|
|
||||||
|
- 规模:约 `50` 条数据。
|
||||||
|
- 主要记录天线/通信部件。
|
||||||
|
- 字段包括:部件名、显示名、质量、是否主动、是否可展开、类型、展开直径、通信距离、角度、速度、功耗、来源、成本、缩放信息等。
|
||||||
|
|
||||||
|
#### 观察
|
||||||
|
|
||||||
|
- `Range km` / `Range AU` / `Range Light year` 看起来是由 `Range Raw` 换算而来。
|
||||||
|
- `idle power watt` / `transmitting power watt` 也是公式列。
|
||||||
|
- `Tech` 列目前看起来全部为空,可能是未整理,或者本来不用。
|
||||||
|
- `Is Feeder`、`Is Deployable`、`Is Active` 是布尔型字段。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.3 `Fuel Chart`
|
||||||
|
|
||||||
|
这是一个**换算工具型表**,目前并不像主数据表,更适合作为后端计算逻辑或前端小工具。
|
||||||
|
|
||||||
|
#### 当前看到的结构
|
||||||
|
|
||||||
|
- 第一行:燃料类型,如 `HTPB`、`Solid`、`PBAN`、`Kerolox`、`Hydrolox`、`Methalox`、`Hydrazine`、`MMH/NTO`
|
||||||
|
- 第二行:每升体积对应质量(看起来像密度/换算系数)
|
||||||
|
- 第三、四行:
|
||||||
|
- 输入体积(L)后,计算不同燃料的质量
|
||||||
|
- 输入质量(t)后,反推出不同燃料的体积
|
||||||
|
|
||||||
|
#### 目前判断
|
||||||
|
|
||||||
|
这个表不一定要入库;更适合实现为:
|
||||||
|
|
||||||
|
- 一个独立 API
|
||||||
|
- 或前端页面里的快速换算器
|
||||||
|
- 或后端的纯函数工具模块
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.4 `Tank Chart`
|
||||||
|
|
||||||
|
- 规模:约 `26` 条数据。
|
||||||
|
- 字段包括:
|
||||||
|
- `Tank`
|
||||||
|
- `Fuel Type`
|
||||||
|
- `Dry Mass`
|
||||||
|
- `Fuel Mass`
|
||||||
|
- `Wet Mass`
|
||||||
|
- `Tank Volume(L)`
|
||||||
|
- `Mass Ratio`
|
||||||
|
- `KL per ton`
|
||||||
|
- `Vehicle`
|
||||||
|
- `Source`
|
||||||
|
- `Note`
|
||||||
|
|
||||||
|
#### 观察
|
||||||
|
|
||||||
|
- `Wet Mass`、`Mass Ratio`、`KL per ton` 中很多是公式列。
|
||||||
|
- `Fuel Type` 当前主要是 `Kerolox` / `Hydrolox` / `Methalox`。
|
||||||
|
- 这个表适合作为“燃料箱/级段参数资料表”。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.5 `KSP Vehicle Cost`
|
||||||
|
|
||||||
|
- 规模:约 `10` 条数据。
|
||||||
|
- 字段比较简单:
|
||||||
|
- `Vehicle`
|
||||||
|
- `Launch Price`
|
||||||
|
- `Source`
|
||||||
|
|
||||||
|
#### 观察
|
||||||
|
|
||||||
|
- 有部分 `Launch Price` 为空,需确认是“未知”还是“待补充”。
|
||||||
|
|
||||||
|
## 5. 当前我整理出的数据建模方向(草案)
|
||||||
|
|
||||||
|
> 这里只是第一轮草案,等你确认字段含义后再正式定表结构。
|
||||||
|
|
||||||
|
### 核心主表建议
|
||||||
|
|
||||||
|
1. `engines` / `engine_base`
|
||||||
|
- 引擎基础信息
|
||||||
|
- 如:名称、来源/分类、尺寸、备注、内部标识等
|
||||||
|
|
||||||
|
2. `engine_variants`
|
||||||
|
- 引擎配置项
|
||||||
|
- 如:燃料类型、循环方式、适用环境、SL/Vac ISP、推力范围、质量、TVC、点火次数、价格、科技节点等
|
||||||
|
|
||||||
|
### 配套表建议
|
||||||
|
|
||||||
|
3. `communication_parts`
|
||||||
|
4. `tank_specs`
|
||||||
|
5. `vehicle_costs`
|
||||||
|
6. `fuel_conversion_rules`(不一定入库,也可能直接写成程序常量)
|
||||||
|
|
||||||
|
## 6. 第一轮需要你确认的问题
|
||||||
|
|
||||||
|
下面这些问题会直接影响数据库设计和前端表单设计:
|
||||||
|
|
||||||
|
### 关于 `Engine Database`
|
||||||
|
|
||||||
|
1. `Work Env` 的枚举含义是什么?
|
||||||
|
- 目前看到像 `Lower`、`Upper` 等,是否表示适用飞行环境/任务场景?
|
||||||
|
|
||||||
|
2. `Classification` 是什么语义?
|
||||||
|
- 是模组来源(如 `Squad`、`NFS`、`Ven`、`Real/...`)
|
||||||
|
- 还是引擎分类标签?
|
||||||
|
|
||||||
|
3. `Name` 是不是游戏/模组里的**内部 part name**?
|
||||||
|
- 如果是,为什么有相当多记录为空?
|
||||||
|
|
||||||
|
4. `Config Name` 是不是某个引擎的配置名/variant 名?
|
||||||
|
- 如果是,它显然不是全局唯一键;后续唯一标识你倾向于用什么?
|
||||||
|
- `Engine + Fuel Type + Config Name`?还是另有内部 ID?
|
||||||
|
|
||||||
|
5. `Price KD` 是不是 Kerbal Dollars 的部件价格?
|
||||||
|
6. `entry Cost` 是不是科技树解锁成本 / 研发成本?
|
||||||
|
7. `TVC` 的单位是否是“度”(gimbal range)?
|
||||||
|
8. `Size` 的单位是否是米(或零件直径规格)?
|
||||||
|
9. `Ignitions` 为空时表示:
|
||||||
|
- 无限次?
|
||||||
|
- 未知?
|
||||||
|
- 不适用?
|
||||||
|
10. `Note` 与 `Config Note` 的区别是什么?
|
||||||
|
- 一个是引擎总体备注,一个是某个配置备注?
|
||||||
|
|
||||||
|
### 关于 `Fuel Chart`
|
||||||
|
|
||||||
|
11. 这个换算功能你希望最终怎么实现?
|
||||||
|
- 单独页面小工具
|
||||||
|
- 引擎/燃料箱录入时的辅助计算器
|
||||||
|
- 还是后端提供一个简单 API 即可
|
||||||
|
|
||||||
|
12. 第二行这些值,本质上是不是“燃料密度 / 升到吨的换算系数”?
|
||||||
|
- 如果是,我后续会直接把它们做成程序配置或数据库字典表。
|
||||||
|
|
||||||
|
### 关于 `KSP Vehicle Cost`
|
||||||
|
|
||||||
|
13. `Launch Price` 为空的行,是不是表示“暂无数据,允许为空”?
|
||||||
|
|
||||||
|
## 7. 下一步建议
|
||||||
|
|
||||||
|
等你回答上面的问题后,我建议立即进入下面阶段:
|
||||||
|
|
||||||
|
1. 先把 `Engine Database` 字段定义彻底确认
|
||||||
|
2. 画出数据库草图(PostgreSQL)
|
||||||
|
3. 确定 Flask 后端模块划分
|
||||||
|
4. 确定前端页面:列表 / 搜索 / 详情 / 编辑 / 导入
|
||||||
|
5. 再开始初始化项目结构、Docker、数据库迁移、Excel 导入脚本
|
||||||
|
|
||||||
Reference in New Issue
Block a user