百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
返回工具页/返回 Issues 列表
#2671·subql

历史重复实体

作者: stwiname创建于 2025年2月10日更新于 2025年2月10日

□ 背景情况

随着历史索引的制定,我们记录了一个实体在时间/街区的变化。 目前,当您设置一个实体时,它将总是在数据库中用一个独特的“%d”创建新的记录,并关闭先前记录的块范围。

如果想要提升已经存在但实体没有改变的实体,就会产生问题。 尽管实体的字段没有改变,但这仍将遵循同样的程序,如实体已经改变并创造了新的记录。

□ 目标

理想的情况是,当一个实体上升了,但字段没有变化,那么它应该是一个新点,因为实体实际上没有改变。 解决这个问题的办法应比查询现有实体更有效,在处理器中加以比较,并决定是否更新。 它还不应产生超过重复实体的好处的重大业绩和资源影响。

□ 实例

目前的行为

  • N区:上层实体A。 这将创建一个新的 db 条目,其中包含实体 A 、 独有的 QQid " 字段和 QQblock range : [n,]
  • Block N+M: Upsert实体A'(与A的字段相同). 这将创建一个带有实体 A 字段的新 db 条目,一个独特的 QQid “ 字段和一个 QQblock range ” : [n+m,] 并将从 N 开始的记录的 QQblock range 更新为 [n,n+m] 。

新行为

  • N区:上层实体A。 这将创建一个新的 db 条目,其中包含实体 A 、 独有的 QQid " 字段和 QQblock range : [n,]
  • Block N+M: Upsert 实体 A'. 检查 A' 的字段是否与 A 相同.
  • 如果它们相等:不更改 DB
  • 如果两者不同: 这将创建一个带有实体 A 字段的新 db 条目,一个独特的 QQid “ 字段和一个 QQblock range ” : [n+m,] 并将从 N 开始的记录的 QQblock range 更新为 [n,n+m] .

内容来源: subquery/subql

查看 GitHub 原文在 GitHub 查看讨论