首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在非关系数据库上使用分层数据的建议?

在非关系数据库上使用分层数据的建议?
EN

Stack Overflow用户
提问于 2011-01-08 14:08:02
回答 2查看 500关注 0票数 5

我正在开发一个web应用程序,它使用非关系数据库作为后端(django-nonrel + AppEngine)。我需要存储一些分层数据(projects/subproject_1/subproject_N/tasks),我想知道应该使用哪种模式。现在我想到:

  • 邻接列表(存储项的父id)
  • 嵌套集(存储项的左和右值)

在我的例子中,正常用户的嵌套深度不会超过4-5级。此外,在UI上,我希望对第一级的项进行分页,以避免在第一页加载时加载太多项。

据我所知,当层次结构更多地用于显示时,嵌套集是很好的。当经常在树上编辑时,邻接列表是很棒的。在我的例子中,我想我比编辑更需要显示(当使用嵌套集时,即使显示工作得很好,上面的分页可能会使编辑的事情复杂化)。

根据您对非关系数据库的经验,您有什么想法和建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-11 23:54:24

如何存储它们取决于您需要如何查询它们。例如,如果您只需要查找父级的直接子元素,则邻接列表模型可能是最简单的。如果要枚举整个子树,则祖先列表或嵌套集可以很好地工作--尽管我会避免应用程序引擎上的嵌套集。

如果您需要对树中的所有对象进行事务完整性--并且不会经常更新整个树--那么您应该研究App对实体组和祖先的支持。

票数 1
EN

Stack Overflow用户

发布于 2011-01-12 00:20:03

我使用Server来存放非关系数据。Server有这样的东西叫做hierarchyID..这使得这一切变得很透明。

你到底有什么问题?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4634219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档