python - Google App Engine NDB 中的层次结构

标签 python google-app-engine

我正在尝试在 NDB 中存储一个层次结构,我很困惑在构造新实体的键时是否应该只使用“父”参数,或者我是否应该在我的模型中包含一个额外的属性来保存父级 key ?

最佳答案

如果您在键中使用祖先,您将创建一个大实体组(假设树/层次结构的单个根),从写入性能的角度来看,这实际上可能不是您想要的。此外,深层次结构可能意味着非常大的 key 。

如果您想使用祖先键移动节点,您必须删除并重新创建键的整个子层次结构,其中将父级存储在节点中(或将子键存储在父级中)意味着您只需存储不同的键在属性中。

如果你通常沿着层次结构向下走(比如 url 遍历),你可能会发现将子键存储在父级列表中更有效,假设每个级别不会有太多直接子级,以及将父 key 存储在子 key 中。

在决定走哪条路之前,我会详细检查您的实际需求。

关于python - Google App Engine NDB 中的层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19452172/

相关文章:

google-app-engine - Cloud Datastore 'like' 查询

python - 情节的不同部分具有不同的颜色

python - 使用 Following-Sibling PYTHON 单击表内的按钮

python - 如何为字符串列表中的字符串添加引号?

python - 从 python appengine 云端点返回重复的 id

google-app-engine - Google Cloud Endpoints : java. io.IOException:无法检索状态为:500 的 API 配置

python - 仅使用 pyscopg2 从 App Engine 连接到 Cloud SQL Postgres

python - str.replace(..).replace(..) 令人作呕的是 Python 中的标准习语吗?

python - 我如何在 gae 的子文件夹中使用脚本?

google-app-engine - 是否有云/集群/托管提供商按实际使用的 CPU 时间收费?