呱呱聚合
← 返回基因库
大模型应用

在 VTEX IO 应用中决定是否以及如何用 Master…

当需要在 VTEX IO 应用中为评价、心愿单、表单等结构化自定义数据选择存储方案并设计 Master Data 实体与 schema 时使用。

被复用0 次
复用有效—
置信度55%
沉淀时间2026-09-23
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
来自 shane.jiang 的小呱沉淀
GDI C 38/100

进化评分(GDI)

综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」

内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 58/100 ×0.15

适用场景

在 VTEX IO 应用中决定是否以及如特定

解决思路

  1. 先判断 Master Data 是否适合:仅用于需要校验、索引和查询支持的结构化自定义数据;若要在 Master Data、VBase、VTEX 核心 API 和外部存储之间做整体选择,改用 vtex-io-data-access-patterns 技能。
  2. 在三种使用方式中做选择:① 用 `masterdata` builder 声明 `masterdata/` 下的实体与 schema,适用于应用是数据模型的主要拥有者、schema 变更不频繁、且 schema 应随应用契约发布;② 仅用 Master Data client 消费已存在的稳定 schema,适用于实体被多个应用共享或集中管理、本应用不应重新定义 schema;③ 在代码中保留稳定 schema 定义并通过受控的 setup 路径按需创建或更新 schema,适用于应用确实拥有 schema 但不想把 schema 发布绑定到每个应用版本。
  3. 保持实体边界明确且与所存储的业务概念一致,每个实体只代表一个清晰的业务概念,schema 与其预期用途匹配;若一个实体混合了不相关概念或存储多种不相关记录形态,应拆分设计。
  4. 只对实际用于过滤和搜索的字段建立索引,例如在 schema 中写 `"v-indexed": ["productId", "userId", "approved"]`;若查询依赖的字段未纳入索引策略,应停下并对齐 schema 与访问模式。
  5. 显式规划 schema 生命周期,考虑清理与版本化,例如 `review-schema-v1 -> review-schema-v2` 并配套清理计划;避免 v1、v2、v3、v4、v5 不断累积而无清理策略。注意修改索引字段或字段类型会影响已有文档的索引与查询方式,当 schema 演进与频繁的应用版本变更耦合时该风险更高。
  6. 保持实体名与 schema 标识在账户、workspace 和环境之间稳定,不要把账户名、workspace 或发布开关编码进实体或 schema 名称;正确做法如 `review-schema-v1`、实体 `RV`,错误做法如 `review-schema-brazil-master`、`RV_US_MASTER`。若确需为开发和生产各用一个 schema,必须有明确的同步计划,避免按 workspace、账户或功能开关生成 schema 名称。
  7. 从开始就考虑数据量与保留策略:若数据集会无界增长且没有保留或归档策略,Master Data 很可能不是合适的存储机制;不要把它当作任意负载的无界倾倒场,也不要作为高写入量、仅追加数据(如日志或事件)的无界存储,这类需求应使用专门的日志或存储机制。
  8. 不要在 Master Data 中存储密钥、凭证或全局应用配置,应改用应用设置或配置类应用。
  9. 按需使用 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) }`。
  10. 在评审时逐项检查:Master Data 是否是该用例的正确存储机制;应用应通过 `masterdata` builder 拥有 schema 还是仅通过 client 消费已有稳定 schema;用代码中的稳定 schema 加受控 setup 路径是否比把 schema 发布绑定到每个应用版本更安全;每个实体是否代表清晰业务概念;实体与 schema 名称是否跨 workspace 和账户稳定;被过滤字段是否被有意索引;是否有 schema 生命周期计划;开发与生产使用不同 schema 时是否有明确同步计划以避免 schema 泛滥。

适用边界 · 注意事项