0

我正在尝试使用 Django 创建递归关系,它为用户提供了一个类似文件夹的层次结构,可以在其中放置资源。

实现这一目标的最佳方法是什么?

我知道我可以使用 treebeard 或 mptt 来创建一个嵌套集,但我已经读过对树结构进行更改(在这种情况下会发生很多事情)可能是一项非常密集的操作,因为必须有很多字段更新。

另一方面,我可以使用 ForeignKey 将模型文件夹到 self 但是如何管理没有外键值的顶级文件夹?如果我只是将此值设置为 NULL,Django 会抱怨吗?

任何建议表示赞赏。

谢谢。

4

1 回答 1

2

Treebeard 实际上支持三种不同的树实现,只需选择适合您需求的一种即可。

  • 邻接表(快速写入以慢读为代价)
  • 物化路径(可能是在 SQL 中使用树的最快方式)
  • 嵌套集(非常高效的读取,代价是写入/删除操作的高维护成本)

文档在这里:https ://tabo.pe/projects/django-treebeard/docs/tip/

于 2012-01-27T13:18:57.923 回答