2017-10-06 52 views
0

有時我會在放置數據存儲區實體之前分配ID,而其他時候我會允許應用引擎自動生成ID。如果爲實體自動生成,刪除的實體ID是否可再次提供給App Engine?

我的問題是:如果我放置一個實體然後刪除它,那麼在分配和/或允許應用引擎爲新實體自動生成ID時,該ID是否再次變爲可用?

我問的原因是我可能有其他實體引用該ID(有點像一個鍵),所以我不希望這些ID即使在刪除一個實體後也被回收。我目前通過從不刪除實體,但在其上放置一個「刪除」標記來解決這個問題。想知道這是如何工作的。

回答

0

由於我最後一次涉及這件事情後可能發生了變化(並且快速文檔搜索沒什麼新意),我的理解是,一旦分配了一個ID塊,它們將不會被回收。

+0

如果您允許應用引擎自動生成ID,該怎麼辦?如果實體被刪除,它可能會被回收嗎? – Micro

+0

未來總是不確定的。我不能排除「潛在」,但我今天不會那樣下注。 –

0

我不會依賴於ID的不重用 - 它沒有明確記錄。另見(相反)Google App Engine (datastore) - will a deleted key regenerate?

如果你對保持實體周圍不滿意,我建議在實際刪除實體並打開潛在的重用之前,實施一個清理所有孤立引用的邏輯。無論如何,這不會是一件壞事 - 那些孤兒引用可能會導致你的悲傷。