谷歌应用引擎是否可以创建引用?

3
假设我有一个包含母亲、父亲和孩子对象的数据存储。在母亲和父亲对象中,我有一个称为"child"的字段,用于存储对他们孩子的引用。是否可以引用该孩子,而无需为每个对象创建重复的孩子实例(采用面向对象编程的方式)?这就是数据库的工作方式吗?
1个回答

5

是的,您可以使用db.ReferenceProperty来实现这一点。

引用属性仅存储其引用的实体的唯一键。因此,母亲和父亲实体都可以包含对其孩子对应键的副本,如下所示:

class Child(db.Model):
    ... # child properties
class Father(db.Model):
    child = db.ReferenceProperty(Child)
    ...
class Mother(db.Model):
    child = db.ReferenceProperty(Child)
    ...

这里有一个后续问题。现在假设母亲和父亲存储了一个子对象(孩子)列表。由于列表是可扩展的,我无法将每个孩子表示为自己的实例变量(例如:child_x = db.ReferenceProperty(Child))。那么我该如何存储对Child对象的引用列表? - Petwoip
1
你可以使用 db.ListProperty 来存储一个列表,其中每个元素都是指向 Child 实体的 db.Key。更多信息请参见这里 - David Underhill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接