Python AppEngine-何时使用父关系?

Python AppEngine-何时使用父关系?,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,我试图理解何时在GAE上使用实体“父”。这仅在查询(即获取父对象==someObj的所有Foo对象)时有用,还是子对象像ReferenceProperty一样可以访问父实体 什么时候使用父对象vs ReferenceProperty更好?我读到的所有内容都是针对父对象的,原因之一是,当您修改树中的任何内容时,所有内容都被锁定 当我第一次开始使用父实体时,我希望将它们视为配置单元的头部或围绕父条目本地化的数据库,但显然这不是它们的工作方式。您可能只想使用ReferenceProperty,因为这将

我试图理解何时在GAE上使用实体“父”。这仅在查询(即获取父对象==someObj的所有Foo对象)时有用,还是子对象像ReferenceProperty一样可以访问父实体


什么时候使用父对象vs ReferenceProperty更好?

我读到的所有内容都是针对父对象的,原因之一是,当您修改树中的任何内容时,所有内容都被锁定

当我第一次开始使用父实体时,我希望将它们视为配置单元的头部或围绕父条目本地化的数据库,但显然这不是它们的工作方式。您可能只想使用ReferenceProperty,因为这将允许您访问父级,而不会导致锁定继续


当然,如果您想要这种关系锁定,那么您可能确实想要,但您不够具体,我无法衡量这一点。

您应该使用实体组(这是所有具有公共父窗体的实体)的唯一时间是为了事务安全。如果需要更新事务中的多个记录,则它们都需要具有相同的根实体。您不会将所有实体都放在一个父实体下的原因是,对实体组的更新限制在大约每秒1次。有关更多信息,请参阅文档的第页


实体可以使用
this.parent
访问其父级,但这并没有什么特别之处-这只是
db.get(this.key().parent())

@Drew Yes的语法糖,尽管这是事务性的扩展。