我正在开发一个使用非关系数据库作为后端的 Web 应用程序(django-nonrel + AppEngine)。我需要存储一些分层数据(项目/子项目_1/子项目_N/任务),我想知道我应该使用哪种模式。现在我想到了:
- 邻接列表(存储项目的父 ID)
- 嵌套集(存储项目的左右值)
就我而言,普通用户的嵌套深度不会超过 4-5 级。另外,在 UI 上,我想对第一级的项目进行分页,以避免在第一页加载时加载太多项目。
据我目前了解,当层次结构更多地用于显示时,嵌套集非常好。经常在树上进行编辑时,邻接列表非常有用。在我的情况下,我想我需要显示而不是编辑(使用嵌套集时,即使显示效果很好,上面的分页也会使编辑变得复杂)。
根据您在非关系数据库方面的经验,您有什么想法和建议吗?