php - 如何为树结构开发数据库模式(有向无环图)

标签 php mysql database-design tree nodes

我正在使用下面的树结构并计划为下面开发一个数据库模式。

enter image description here

我目前的发展情况如下,

enter image description here

我遇到的问题是如果我搜索 Y,应该生成下面的树。

enter image description here

我使用的逻辑是,Y 有两个交叉引用 X、Z,这两个节点应该在图中,父节点一直到起始父节点。

鉴于我正在使用 PHP 使用 mysql 数据库表生成此树,如上所示。数据库结构可以更改。我在谷歌上搜索了类似的树结构,但找不到任何帮助。

注意事项

不是要求您为我编写代码。我所要求的只是一些应该如何完成的指南。

我发现下面的内容很有帮助,但仍然与我的情况不同

What is the most efficient/elegant way to parse a flat table into a tree?

How to represent a tree like structure in a db

如果有人能告诉我应该使用哪些 php 库来生成树以及要使用的合适的数据库结构是什么?

最佳答案

您的数据库结构似乎不是一棵树,它只是一个图表。

我建议你放弃这种结构的关系数据库,看看一些图形数据库,如 Neo4j , OrientDBInfinite Graph .

但如果你被迫使用 MySQL,你可以使用 FlockDB可用于遍历 MySQL 节点(将行视为节点),但有一些限制。或者您可以测试另一个 MySQL 引擎,例如 OQGRAPH为 MySQL 和 MariaDB 提供图形引擎。

关于php - 如何为树结构开发数据库模式(有向无环图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18299842/

相关文章:

php - 与 wamp 相比,服务器上的内存使用率较高

javascript - 创建可扩展列表以显示其余内容

MySQL 触发器 - 年月 (YYMM) 前缀 + 自动递增 ID

没有 php 的 PHPBB3 大量用户删除

mysql - 获取测试运行的计数及其开始时间

sql - 当相关数据需要存储在连接表中时,约定是什么?

javascript - 通过 json 以 10ms 的间隔检查/显示变量值

php - 获取文件名中包含空格的 AWS S3 对象

design-patterns - 如何正确存储与 Microsoft Azure 表存储的数据关系?

php - 如何在mysql数据库中存储用户的多个值?