H2.06.3sample-real data separation设计
示例数据不得与真实数据混淆
别名: 真假数据混杂 · 示例污染 · demo data leakage
概念解释
示例行和用户自己的记录必须落在不同的数据身份上:搜索、计数、导出、协作、计费,都不能把假行算进去。混淆不是「看起来有点像」,而是系统在某个通道里把示例当成了真对象——未读数含示例、报表含演示订单、同事打开分享看到「示例客户」。标识和一键清除降低了认错,但若后端仍把示例写进同一张表、同一个索引,认对了也会算错。
机制
产品里多数功能按「容器里的记录」操作,并不问来源。示例一旦与真记录共用主键空间,过滤器、角标、同步都会自动吃进假行。人用这些汇总来判断工作量:角标是 3,他以为有三封要回的信。混淆的第二层发生在边界操作:导出把示例带出产品,进入表格或对方系统后标识丢失,假行变成下游的真输入。协作更危险:示例对创建者是布景,对收到分享的人是内容。所以分离不能只靠颜色,要靠身份:示例不进入真集合的查询、不进入对外的发送、不进入计量。展示职责结束后,身份仍应可被整批消灭,而不能「变成」用户记录——那是另一条产品(预置起点)的事。
边界
本地-only 的演示模式整份数据都是假的,不存在与真数据混合,但一旦该账号切到正式网络,本地示例不得上传。从示例「另存为我的」是显式转化,转化后旧身份应消失,不要留下一条又像示例又像真的双生。分析环境故意把匿名生产数据当示例,那是脱敏抽样,必须在环境级标明,不能混进生产工作区。
怎么落地
- 给示例独立类型或独立命名空间,默认查询、未读、导出、分享、计费排除它们;工作视图若要展示,用单独的演示层而不是同一列表混排。
- 禁止示例出现在对外通道(邮件、公开链接、API)除非通道本身是演示模式并全程带标记。
- 第一份真记录写入后,示例不得再进入该容器的计数与搜索默认范围。
- 验证:在有示例的账号上做一次搜索、看角标、导出、开一个分享链接。四处任一带出无标记的假行,分离就失败了。再清掉示例,计数应回到与真记录一致。