将树存储在数据库中

时间:2016-02-03 11:00:38

标签: database algorithm hierarchical-data

我目前正试图找出在数据库中存储树的最佳方法(如果可能的话,可能是mysql)。 这些是树的约束和使用:

  • 每个节点最多可以有4个子节点,但如果它可扩展且最多x个子节点
  • 则会更好
  • 每个孩子都有一个体重(如果父母有3片叶子,那么每个孩子使用它们的概率可能分别为40%,40%和20%)。
  • 大约40K节点将存储在数据库中,但如果它是可扩展的,那么更好,例如1M,
  • 数据库中不会写入任何数据,只需阅读
  • 即可
  • 目标是从根到特定的叶子具有非常好的阅读性能,而不是能够一次显示所有树

目前我曾考虑使用邻接列表模型:https://www.simple-talk.com/content/article.aspx?article=1234将权重存储为字段。

这对你没用,或者有更好的方法将其存储在数据库中?

2 个答案:

答案 0 :(得分:0)

您应该考虑使用图形数据库,例如neo4j。

答案 1 :(得分:0)

既然你在谈论一棵树,而不是一般的图形 - 那么文件系统呢?你应该能够获得良好的表现。你甚至可以将它存储在内存中。它也可以轻松扩展到1M节点。你可以免费获得备份,浏览树等工具。

有时最简单的解决方案是最好的。