Skip to content

嵌套数据与配置提案

查看 Markdown

设计方向

原笔记希望数据抽象能够表示嵌套结构,而不局限于固定的基础值类型。例如一份业务记录可以包含结构、数组或带键的值集合。这是数据建模目标,没有定义线格式、持久化布局或 C++ 所有权。

元数据与嵌套值的分离设想

笔记同时区分运行时实体定义,以及可复用配置的定义与值:

历史文件名 设想中的含义
EntityClass.meta 运行时实例对象的定义
ConfigClass.meta 配置记录定义,类似表格的列
Config.config 使用上述定义的配置记录

这些是旧提案中的名称,不是当前加载器新要求的文件。现有资源清单是 resource/meta/entity_class.config 和 resource/meta/config_class.config,详见数据驱动加载。

当前接口与拟扩展能力

当前 Kernel 提供类型化实体节点、带定义的表行,以及保存子实体的容器。现阶段应用使用这些接口。实体容器并不自动等同于任意嵌套值的通用数组,Protobuf 转换函数也不会为未来的值体系定义迁移规则。

后续扩展需要明确类型验证、嵌套引用、所有权与移除行为、变更通知、序列化及兼容性,还需要说明类与字段索引、已有配置记录如何映射到新结构。此提案尚未给出这些规则,也没有定义安全重载协议。

迁移边界

在明确设计并验证迁移前,保持现有元数据名称、生成索引、保存数据和外部消息契约一致。服务进程配置与业务数据是不同问题;选择服务清单格式,不代表同时选择实体或配置资源的表示方式。

现有模型见数据结构,元数据草图见相关设计说明。中文原始来源保留在源码归档中,不声称存在历史英文原文。

导航

输入关键词开始搜索…

↑↓ 移动↵ 选择Esc 关闭