大模型应用
在 VTEX IO 应用中决定是否以及如何用 Master…
当需要在 VTEX IO 应用中为评价、心愿单、表单等结构化自定义数据选择存储方案并设计 Master Data 实体与 schema 时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 58/100 ×0.15
适用场景
在 VTEX IO 应用中决定是否以及如特定
解决思路
- 先判断 Master Data 是否适合:仅用于需要校验、索引和查询支持的结构化自定义数据;若要在 Master Data、VBase、VTEX 核心 API 和外部存储之间做整体选择,改用 vtex-io-data-access-patterns 技能。
- 在三种使用方式中做选择:① 用 `masterdata` builder 声明 `masterdata/` 下的实体与 schema,适用于应用是数据模型的主要拥有者、schema 变更不频繁、且 schema 应随应用契约发布;② 仅用 Master Data client 消费已存在的稳定 schema,适用于实体被多个应用共享或集中管理、本应用不应重新定义 schema;③ 在代码中保留稳定 schema 定义并通过受控的 setup 路径按需创建或更新 schema,适用于应用确实拥有 schema 但不想把 schema 发布绑定到每个应用版本。
- 保持实体边界明确且与所存储的业务概念一致,每个实体只代表一个清晰的业务概念,schema 与其预期用途匹配;若一个实体混合了不相关概念或存储多种不相关记录形态,应拆分设计。
- 只对实际用于过滤和搜索的字段建立索引,例如在 schema 中写 `"v-indexed": ["productId", "userId", "approved"]`;若查询依赖的字段未纳入索引策略,应停下并对齐 schema 与访问模式。
- 显式规划 schema 生命周期,考虑清理与版本化,例如 `review-schema-v1 -> review-schema-v2` 并配套清理计划;避免 v1、v2、v3、v4、v5 不断累积而无清理策略。注意修改索引字段或字段类型会影响已有文档的索引与查询方式,当 schema 演进与频繁的应用版本变更耦合时该风险更高。
- 保持实体名与 schema 标识在账户、workspace 和环境之间稳定,不要把账户名、workspace 或发布开关编码进实体或 schema 名称;正确做法如 `review-schema-v1`、实体 `RV`,错误做法如 `review-schema-brazil-master`、`RV_US_MASTER`。若确需为开发和生产各用一个 schema,必须有明确的同步计划,避免按 workspace、账户或功能开关生成 schema 名称。
- 从开始就考虑数据量与保留策略:若数据集会无界增长且没有保留或归档策略,Master Data 很可能不是合适的存储机制;不要把它当作任意负载的无界倾倒场,也不要作为高写入量、仅追加数据(如日志或事件)的无界存储,这类需求应使用专门的日志或存储机制。
- 不要在 Master Data 中存储密钥、凭证或全局应用配置,应改用应用设置或配置类应用。
- 按需使用 schema 示例:拥有 schema 时在 `masterdata/review-schema-v1.json` 中声明 `v-entity`、`properties`、`required` 和 `v-indexed`;仅消费时用 Master Data client 写入记录,如 `await ctx.clients.masterdata.createDocument({ dataEntity: 'RV', fields: { productId, userId, rating, approved: false } })`;在代码中拥有稳定 schema 时用受控路径检查并创建,如 `const existing = await ctx.clients.masterdata.getSchema('review-schema-v1'); if (!existing) { await ctx.clients.masterdata.createOrUpdateSchema('review-schema-v1', schema) }`。
- 在评审时逐项检查:Master Data 是否是该用例的正确存储机制;应用应通过 `masterdata` builder 拥有 schema 还是仅通过 client 消费已有稳定 schema;用代码中的稳定 schema 加受控 setup 路径是否比把 schema 发布绑定到每个应用版本更安全;每个实体是否代表清晰业务概念;实体与 schema 名称是否跨 workspace 和账户稳定;被过滤字段是否被有意索引;是否有 schema 生命周期计划;开发与生产使用不同 schema 时是否有明确同步计划以避免 schema 泛滥。
适用边界 · 注意事项
- 不适用于 Master Data 客户端底层用法细节、运行时或路由结构、应用设置 schema、前端 UI 行为等主题。
- 当数据集会无界增长且没有保留或归档策略时,不应使用 Master Data。
- 不要用于存储密钥、凭证或全局应用配置,也不要作为高写入量仅追加日志或事件的无界存储。