假设: 1)Google AppEngine具有实体组的概念。 2)实体组中的实体形成树。但是,据我所知,每个put()到该树中的任何实体都会锁定整个树(而不仅仅是直接的父)一段时间。 3)允许用户写ca.树每秒5次。 4)没有办法具有非锁定行为(即通过使它们成为无索引的属性)
想出我自己的父子模型是不是一个明智的想法,它不使用内置的Key函数(因为那些会创建实体组),而是使用我编写的一些snytax对话?这将允许我通过查询计算父键来检索“子”实体。
答案 0 :(得分:4)
实体组使用的祖先关系可以使用父实体的引用/键列表在您自己的代码中建模。根实体将没有,根的子将只有他们列表中的根实体,他们的子将拥有根和他们的直接父,等等。这就是如何在App Engine中实现祖先的索引,并允许您进行相同类型的查询。
答案 1 :(得分:1)
您可以使用参考属性:
class Parent(db.Model):
x = db.IntegerProperty()
class Child(db.Model):
parent = db.ReferenceProperty(
reference_class = Parent,
collection_name = 'children')
y = db.IntegerProperty()