繁体   English   中英

Google Appengine数据存储树结构

[英]Google appengine datastore tree structure

我需要能够在appengine数据库中制作树状结构。
我试图做一个对象引用本身,但还没有使它起作用。

class Item(db.Model):
    children = db.ListProperty(db.ReferenceProperty(Item))

另外,您可以使用以下方式将对孩子的引用存储在父对象中:

class Node(db.Model):
    children = db.ListProperty(db.Key)

尼克·约翰逊(Nick Johnson)对这个相关问题的回答,使这个回答无耻地被偷了(功劳!)

是google-appengine组的相关主题。

您可以在每个子节点中存储对父节点的引用,而不是在父节点中存储对子节点的引用。

这是一些代码:

class Node(db.Model):
    pass

...snip...

root = Node()
db.put(root)

for i in xrange(10):
    child = Node(parent=root)
    db.put(child)

    for i in xrange(5):
        grandchild = Node(parent=child)
        db.put(grandchild)

parentModel上的一个特殊字段,它告诉数据存储区一个实体与其父级具有父子关系。

文档

应用程序创建实体时,可以使用Model构造函数中的parent参数将另一个实体分配为新实体的父代。 将父实体分配给新实体会将新实体与父实体置于同一实体组中。

没有父级的实体是根实体。 作为另一个实体的父实体的实体也可以具有父实体。 从实体到根的父实体链是该实体的路径,而路径的成员是该实体的祖先。 实体的父代是在创建实体时定义的,以后无法更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM