簡體   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