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抛出错误。 这种情况(管理代码)是否合理或手动执行关系是否良好?这种情况有替代模型吗?
答案 0 :(得分:0)
这是数据存储区提供的工具。如果你想要更强大的东西,你可以构建一个带有析构函数的类,它总是检查它们的ReferenceProperties并清理它们。
这有点像询问指针是否是一件坏事,因为你可以泄漏内存并留下悬空指针。是的,但是在某些语言中,这是可用的基本工具。如果你想要更安全的东西,可以在它周围构建一个包装器。或者使用其他语言(如Cloud SQL)。