3

我有三张桌子:

部门 :

在此处输入图像描述

指定 :

在此处输入图像描述

部门名称:

在此处输入图像描述

DesignationIDReportTo是表指定的外键,表示一个指定的指定报告给一个指定的指定。即经理(这是指定)向首席执行官报告(这也是指定)

现在我想生成一棵树,比如......

在此处输入图像描述

我手动输入条目以显示上面的树。IE

在此处输入图像描述

现在我的问题是,我无法以自动生成这棵树的方式编写函数。

简而言之,从数据库中获取记录后,我想生成如上图所示的树。

任何解决方案?

注意:树的级别不是固定的,树的级别可能是无限的

4

4 回答 4

0

它是 Java,因此您可以使该树尽可能深。

将查询与树的总体与 UI 渲染分开,您将没有问题。查询数据库,填充树并将其提供给 UI 进行渲染。

如果您尝试将一个部分与另一个部分混合,您将遇到问题。

于 2012-12-19T13:17:45.680 回答
0

我认为你可以使用 php 来绘制这棵树。例子。
编写用于选择数据到行的连接查询 这不是你的答案,而是可以告诉逻辑的提示。<li>
while(!empty($row))
{
echo'<li><ul>$row[designation name]';
while(!empty($next))
{echo'<li><ul>$next[designation name]';
//next sentence must be a select query }
echo'</ul></li>'
}
echo'</ul><li>' }

于 2013-02-25T08:41:43.257 回答
0

这是一个提示。

这是一棵树,您需要在树项目上递归迭代,直到达到叶级别才能填充它,正如@duffymo 给出的答案中提到的那样,您应该将树填充的逻辑与查询分开。

如果您仍然无法解决,请链接

好运 :-)

于 2012-12-19T13:24:25.433 回答
0

您可以使用这样的树结构,然后从查询中填充它。

然后,您将有不同的选择,例如:

1)您将树转换为 JSON 并使用 jQuery 递归迭代它

2)您直接在Java中迭代它(递归),构建输出服务器端(假设一个包含您的HTML的大字符串)。然后您只需将结果注入页面(由于服务器和客户端之间的耦合,效果不佳)

ETC...

于 2012-12-19T13:26:59.780 回答