【问题标题】:Is -using ReferenceProperty in Google App Engine datastore- reasonable?- 在 Google App Engine 数据存储中使用 ReferenceProperty - 是否合理?
【发布时间】:2012-10-06 09:46:53
【问题描述】:
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 是很好的数据关系解决方案。 所以; 例如,我们的“作者”和“故事”实体(表)中有大量行。多年后,我们删除了“作者”实体或将名称属性替换为另一个名称。 自然;我们的应用程序应该抛出错误。 这种情况(管理代码)是否合理或手动执行关系是否良好?这种情况有什么替代模型吗?

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:

    这是数据存储提供的工具。如果你想要更健壮的东西,你可以构建一个带有析构函数的类,该析构函数总是检查它们的 ReferenceProperties 并清理它们。

    这有点像问指针是否是一件坏事,因为您可能会泄漏内存并留下悬空指针。是的,它们是,但在某些语言中,这是可用的基本工具。如果您想要更安全的东西,请围绕它构建一个包装器。或使用其他语言(如 Cloud SQL)。

    【讨论】:

      猜你喜欢
      • 2011-07-24
      • 2011-02-04
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      • 2010-11-03
      • 2014-10-31
      • 2012-06-13
      • 2011-04-11
      相关资源
      最近更新 更多