【问题标题】:Are deleted entity IDs once again available to App Engine if auto-generated for an Entity?如果为实体自动生成已删除的实体 ID,App Engine 是否可以再次使用?
【发布时间】:2017-10-06 03:17:45
【问题描述】:

有时我会在放置数据存储实体之前分配一个 ID,有时我允许应用引擎自动生成 ID。

我的问题是:如果我放置一个实体然后删除它,在分配和/或允许应用引擎为新实体自动生成 ID 时,该 ID 是否再次可用?

我问的原因是我可能有其他实体引用该 ID(有点像一个键),所以我不希望即使在删除实体后也回收该 ID。我目前通过从不删除实体而是在它们上放置一个“已删除”标志来解决这个问题。想知道这是如何工作的。

【问题讨论】:

    标签: google-app-engine google-cloud-datastore


    【解决方案1】:

    需要注意的是,自从我上次参与此操作以来,某些事情可能已经发生了变化(并且快速的文档搜索没有发现任何新内容),我的理解是,一旦您分配了一个 ID 块,它们就不会被回收。

    【讨论】:

    • 如果允许应用引擎自动生成 ID 会怎样?如果实体被删除,它可能会被回收吗?
    • 未来总是不确定的。我不能排除“可能”,但我今天不会那样打赌。
    【解决方案2】:

    我不会依赖不重复使用 ID - 它没有明确记录。另见(相反)Google App Engine (datastore) - will a deleted key regenerate?

    如果您对保留实体不满意,我建议您在实际删除实体并为潜在的重用开放之前实施一种逻辑来清理所有孤立引用。无论如何,这不是一件坏事——那些孤儿引用可能会让你感到悲伤。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-11
      • 1970-01-01
      • 2023-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多