0
我使用app引擎和數據存儲。我有餐館和業主實體。 店主是父母餐廳。我在主網頁上顯示餐館列表。當訪客點擊餐廳時,會打開個人資料頁面(www .../restaurants /:id)。那時我沒有祖先鑰匙。我應該如何找回餐廳?我可以使用/ restaurants /:key但datastore.key是很長的字符串。 這樣做的自然方式是什麼?我應該使用獨特的餐廳名稱和查詢/過濾嗎?通過id/key獲取實體而不指定祖先密鑰
爲什麼擁有者是祖先,請改用關係。即餐廳的owner = KeyProperty()。您是否在使用涉及所有者和餐館的交易組?通常情況下,人們會將祖先的財產用於擁有關係,然後遭受損失。例如,如果你的餐廳改變它的所有者,你必須重新與一個新的父母餐廳。如果你進入餐廳並不總是涉及業主,你有你的問題。您目前通過使用所有者作爲祖先得到什麼好處? –
KeyProperty是Python中的一個術語嗎?我用Go。所以,我使用祖先,因爲當我刪除所有者時,我可能想刪除它下面的餐廳,然後刪除餐館下的菜單等。聽起來像我需要交易。我不知道如何聰明地做到這一點。 但是,你的意思是我在Restaurant下添加一個字符串字段並將其值設置爲Owner的鍵值?如果是這樣,我可以做到。 – nurp
KeyProperty與go中的'Datastore key'相同。即使使用祖先,也不會發生級聯刪除。所以你必須執行一系列的查詢和刪除操作。是的,單一的交易可能是合適的,但你有XG交易,所以它沒有什麼大不了的。如果你不知道父母沒有查詢,而不是偶爾刪除一個所有者,是否值得將尋找餐館的最常見要求複雜化?那是你決定的事情。查看所有常用用例並設計數據模型以有效支持最常見的用例。 –