update at 2026-02-13 08:42:56
This commit is contained in:
77
BACKEND_STRUCTURE.md
Normal file
77
BACKEND_STRUCTURE.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# BACKEND_STRUCTURE.md
|
||||
|
||||
## 1. 当前结论(v0.1)
|
||||
当前项目为纯前端本地处理架构:
|
||||
- 无后端服务
|
||||
- 无数据库
|
||||
- 无认证系统
|
||||
- 无远程 API
|
||||
|
||||
这不是遗漏,而是产品范围定义(见 PRD.md 的 Non-Goals)。
|
||||
|
||||
## 2. 数据处理位置
|
||||
所有数据处理均在客户端完成:
|
||||
- 文件解析:`src/core/parser.ts`
|
||||
- 聚合构建:`src/core/sankey.ts`
|
||||
- 状态承载:`src/App.vue`(内存态)
|
||||
|
||||
## 3. 当前“数据结构合同”
|
||||
虽然没有数据库,但有稳定的数据结构合同。
|
||||
|
||||
### 3.1 RawTable
|
||||
```ts
|
||||
interface RawTable {
|
||||
headers: string[];
|
||||
rows: string[][];
|
||||
}
|
||||
```
|
||||
|
||||
### 3.2 MappingConfig
|
||||
```ts
|
||||
interface MappingConfig {
|
||||
sourceDataColumn: number | null;
|
||||
sourceDescriptionColumns: number[];
|
||||
targetDescriptionColumns: number[];
|
||||
delimiter: string;
|
||||
}
|
||||
```
|
||||
|
||||
### 3.3 SankeyBuildResult
|
||||
```ts
|
||||
interface SankeyBuildResult {
|
||||
nodes: Array<{ name: string; kind: 'source' | 'target' }>;
|
||||
links: Array<{ source: string; target: string; value: number }>;
|
||||
meta: {
|
||||
droppedRows: number;
|
||||
warnings: string[];
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## 4. 存储规则
|
||||
- 运行时数据仅驻留内存(浏览器刷新后丢失)。
|
||||
- 不写入 localStorage / IndexedDB / 远程存储。
|
||||
- 导出结果通过浏览器下载能力交付给用户。
|
||||
|
||||
## 5. 认证与权限
|
||||
- 当前不存在用户登录、权限校验、租户隔离。
|
||||
- 所有用户在本地环境有相同行为能力。
|
||||
|
||||
## 6. API 合约
|
||||
- 当前无 HTTP API。
|
||||
- 唯一远程读取是静态样例文件:`GET /data/example0.xlsx`(同站静态资源,不是业务 API)。
|
||||
|
||||
## 7. 边界与异常处理
|
||||
- 文件类型不支持:直接抛错并提示。
|
||||
- 解析错误:保留页面可操作状态,允许重新上传。
|
||||
- 聚合错误:展示错误信息,不产生图表。
|
||||
- 行级数据问题:通过 warning 列表给出行号并跳过坏行。
|
||||
|
||||
## 8. 未来后端接入约束(预留)
|
||||
仅当 PRD 明确扩展范围(账号、云保存、协作)时,才允许新增后端。届时必须先补充:
|
||||
1. 数据库表结构(表、字段、类型、索引、关系)
|
||||
2. API OpenAPI 合约
|
||||
3. 认证模型(会话、令牌、权限)
|
||||
4. 存储策略(文件与图快照)
|
||||
|
||||
在 PRD 未变更前,禁止实现任何后端功能。
|
||||
Reference in New Issue
Block a user