数据模型架构
数据层以 Unit(文档实例) 为核心:Workbook / Document / Slide 继承 UnitModel,对外暴露 Snapshot 用于持久化与协同。
1. 文档类型
| 模型 | 核心结构(概念) |
|---|---|
| Workbook | Sheets、行列、单元格矩阵 |
| Document | 块、段落、富文本 |
| Slide | 页、形状、布局 |
2. UnitModel 与 Snapshot
- Snapshot:可 JSON 化的完整状态描述(或增量补丁格式,视版本)。
- 加载:
createUnit/ 从 snapshot 恢复。 - 保存:导出 snapshot 给后端或协同服务。
3. 稀疏存储
大表不对空单元格全量存对象;常用 稀疏矩阵 / 树 结构,按「有数据的区域」存储,降低内存。
4. 样式
- 样式与单元格数据分离(样式表 + 引用 id),减少重复。
- 行列默认样式继承链:行 → 列 → 单元格。
5. ViewModel
渲染与交互用的派生视图(合并区域布局、可见区缓存等),可由 Model 变更事件重建,不当作权威数据源。
6. 数据流
text
用户操作 → COMMAND → MUTATION → UnitModel 更新 → 事件 → ViewModel/渲染刷新7. 校验与业务规则
数据验证、条件格式等多以插件 + Command 实现,规则配置在 Model 或独立 Service。
8. 总结
Snapshot 是真相来源;协同、导入导出、Undo 都围绕 MUTATION 对 Snapshot 的变换。