Luc*_*ian 5 google-app-engine hierarchical-trees django-nonrel
我正在开发一个使用非关系数据库作为后端的web应用程序(django-nonrel + AppEngine).我需要存储一些分层数据(projects/subproject_1/subproject_N/tasks),我想知道我应该使用哪种模式.现在我想到:
就我而言,普通用户的嵌套深度不会超过4-5级.此外,在UI上,我想对第一级上的项目进行分页,以避免在第一页加载时加载太多项目.
据我所知,到目前为止,当层次结构更多地用于显示时,嵌套集很好.当经常在树上进行编辑时,邻接列表很棒.在我的情况下,我想我需要显示的不仅仅是编辑(当使用嵌套集时,即使显示效果很好,上面的分页也会使编辑时的内容复杂化).
根据您对非关系数据库的经验,您有什么想法和建议吗?
如何存储它们取决于您需要如何查询它们。例如,如果您只需要查找父级的直接子级,则邻接列表模型可能是最简单的。如果您想枚举整个子树,祖先列表或嵌套集效果很好 - 尽管我会避免在 App Engine 上使用嵌套集。
如果您需要树中所有对象的事务完整性 - 并且不会比每秒几次更频繁地更新整个树 - 您应该研究 App Engine 对实体组和祖先的支持。
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |