我正在尝试在 NDB 中存储一个层次结构,我很困惑在构造新实体的键时是否应该只使用“父”参数,还是应该在我的模型中包含一个额外的属性来保存父键?
最佳答案
如果您在键中使用祖先,您将创建一个大实体组(假设树/层次结构的单个根),从写入性能的角度来看,这实际上可能不是您想要的。此外,深层次的层次结构可能意味着非常大的键。
如果您想使用祖先键移动节点,您必须删除并重新创建键的整个子层次结构,其中将父级存储在节点中(或在父级中存储子键)意味着您只需在属性中存储不同的键。
如果你通常沿着层次结构走下去(比如 url 遍历),你可能会发现将子键存储在父级的列表中更有效,假设每个级别不会有太多直接子级,以及存储父级关键在 child 。
在决定走哪条路之前,我会详细检查您的实际需求。
关于python - Google App Engine NDB 中的层次结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19452172/