你如何创建分层存储SQL数据使用邻接表方法的多维数组?
-
16-09-2019 - |
题
从SQL分层数据
邻接表模型
在我的模型我有一系列的对象,每个存储的与他们的父ID。我现在用的是邻接表模型作为我的层次分析法。
简单地输出那里,然后邻接表的所有实施例。无尝试创建从结果集的多维数组。
---------------
| id | parent |
---------------
| 1 | NULL |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 2 |
| 6 | 5 |
---------------
对象
我创造了我的班被称为“孩子”的数组变量,并希望增加孩子每一次我发现从数据库查询的子对象。
创建的每个对象中的阵列以及将所述后续对象在那里感觉错。我不能单独创建对象的数组?这样做,这样可以使它很难遍历数组时,我把它搬进视图。
我觉得我我处理这个问题的错误的方式?
是否有使用比这个PHP阵列一个更聪明的方式?
解决方案
孩子的阵列不必是类的一部分;你总是可以只是做一个特设的树,其中一个节点是包含对象及其子女的哈希值。我不知道PHP,但它看起来是这样的:
{
object => $row1,
children => [
{
object => $row2,
children => [ ... ],
}, {
object => $row3,
children => [],
}
]
}
其他提示
你需要它是一个数组?一个选项可以是具有对象实现的递归分级结构像这样的:
http://www.php.net/~helly /php/ext/spl/classRecursiveArrayIterator.html
可以添加的对象作为子和仍然行进的结构以阵列状的方式。
在SPL的文档是稀疏但它提供了一些良好的横越结构,接口和类。一些好的教程,它在网络上存在。
不隶属于 StackOverflow