有时我会在放置数据存储区实体之前分配ID,有时我会允许应用引擎自动生成ID。
我的问题是:如果我放置一个实体然后将其删除,那么在分配和/或允许应用引擎自动为新实体生成ID时,该ID是否会再次可用?
我问的原因是我可能有其他实体引用该ID(有点像密钥),所以我不希望即使在删除实体后也可以回收ID。我目前解决这个问题的方法是永远不要删除实体,但要删除"删除"他们的旗帜。想知道它是如何工作的。
答案 0 :(得分:0)
有一点需要注意,自从我上次参与此事后可能发生了一些变化(并且快速的文档搜索没有任何新内容),我的理解是,一旦你分配了一块ID,它们就不会被回收
答案 1 :(得分:0)
我不会依赖于ID的不重用 - 它没有明确记录。另见(相反)Google App Engine (datastore) - will a deleted key regenerate?。
如果您对保持实体不满意,我建议在实际删除实体并开放潜在的重用之前,实施清理所有孤立引用的逻辑。反正这不会是坏事 - 那些孤儿参考可能会让你感到悲伤。