2012-10-06 89 views
-1
class Author(db.Model): 
    name = db.StringProperty() 

class Story(db.Model): 
    author = db.ReferenceProperty(Author) 

story = db.get(story_key) 
author_name = story.author.name 

author = db.get(author_key) 
stories_by_author = author.story_set.get() 

衆所周知,使用ReferenceProperty是數據關係的良好解決方案,如上所示。 所以;例如,我們在「作者」和「故事」實體(表格)中有大量的行。多年後,我們刪除了「作者」實體或將名稱替換爲另一個名稱。自然地;我們的應用sholud拋出錯誤。 這種情況(管理代碼)是否合理或者手動執行關係是否良好?這種情況下是否有其他模式?是否在Google App Engine數據存儲中使用ReferenceProperty-合理?

回答

0

這是數據存儲提供的工具。如果你想要更健壯的東西,你可以用析構函數構建一個類,它總是檢查它們的ReferenceProperties並清理它們。

這有點像詢問指針是否壞事,因爲你可以泄漏內存並留下懸掛指針。是的,但在某些語言中,這是可用的基本工具。如果你想要一些更安全的東西,圍繞它建立一個包裝。或者使用其他語言(如Cloud SQL)。

相關問題