0xc*_*urb 3 python google-app-engine
我试图在NDB中存储一个层次结构,我很困惑,如果我在构造新实体的键时应该只使用'parent'参数,还是应该在我的模型中包含一个额外的属性来保存父键?
如果您在密钥中使用祖先,您将创建一个大的实体组(假设树/层次结构的单个根),从写入性能的角度来看,这实际上可能不是您想要的.深层次结构也可能意味着非常大的键.
如果要使用祖先键移动节点,则必须删除并重新创建键的整个子层次结构,其中将父节点存储在节点中(或父节点中的子键)意味着您只需在属性中存储不同的键.
如果您通常沿着层次结构(例如url遍历)走下去,您可能会发现将子密钥存储在父级列表中更有效,假设每个级别不会有太多的直接子级,以及存储父级关键在于孩子.
在决定走哪条路之前,我会详细检查你的实际需求.