gpt4 book ai didi

python - 使用哪种算法来填充树结构中的数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:43:51 26 4
gpt4 key购买 nike

我的数据库中有这个表,我想在网页上填充数据。

parent_topic    child_topic
4 5
4 6
4 7
5 8
5 9
5 11
5 11
5 13
12 14
13 15
8 16
8 17
8 18
16 19
9 20
20 21
9 22
9 23
6 24
25 25
24 26
6 27
24 25
25 21

我正在研究 python。我应该使用什么算法来填充此表。格式如下...

  • 主题 1(没有任何 parent 的主题)

    • 子话题
      • 子话题
        • 子话题<​​/li>
    • 子话题<​​/li>
  • 主题 2
    • 子主题

等等...( child 主题根据表格)。
我试图使用嵌套字典,但我无法创建这样的字典。

提前致谢。

最佳答案

我强烈建议您阅读此博客 Storing Hierarchical Data in a Database .

博客详细介绍了业界在关系型数据库中存储分层数据的两种主要方法:邻接表模型和改进的前序树遍历算法。

邻接表模型方法是您的数据库使用的方法。您通过从顶部节点递归来迭代树。在许多情况下,人们不想或不能将所有数据加载到内存中,因此每个节点上的迭代将对新的 SQL 查询进行分类。这是邻接表方法的最大缺点。

django-treebeard是一个基于 Django 框架的邻接列表实现高效树实现的库。以为你可能不会使用django,你仍然可以从django中学到很多东西。

改进的前序树遍历算法方法在对树的读取次数大于对树的更改次数时更有效(通常对于网站来说是这样),因此它比邻接表方法。

对于django,还有一个改进的前序树遍历算法的优秀实现:django-mptt

关于python - 使用哪种算法来填充树结构中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19452556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com