update at 2026-02-13 08:42:56

This commit is contained in:
douboer@gmail.com
2026-02-13 08:42:56 +08:00
parent 9738329529
commit 92105bbcde
7 changed files with 638 additions and 0 deletions

77
BACKEND_STRUCTURE.md Normal file
View 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 未变更前,禁止实现任何后端功能。