Lim*_*ing 4 sql asp.net nested-sets
如何查询具有多个根的嵌套集模型,例如同一个表中的树?目前,我添加了一个名为"Root"的额外列,表示所有子树节点的根节点的ID,但是,我无法找出sql以正确的顺序检索它们
我指的是管理MySQL中的分层数据这篇文章.
通常,按顺序检索项目的查询是按左叶值的顺序,但是有多个根,你可以一个接一个地结束多个"left:1",这样就打破了树.
我目前正在使用完全与SQL无关的解决方案.我将它们重新安排在我的C#代码中,但我只是想知道是否有办法用SQL来实现它,这样可以节省我在Web服务器上花费的时间
最后一个问题.如果我有一个过滤器,它从树中过滤掉一些数据,你如何处理它?
说
如果过滤器要显示状态为"活动"的所有树,您会怎么做?
"多根"只是意味着你从第一级开始并完全省略"真正的"根.所以,
Root1 (1, 4)
Node1 (2, 3)
Root2 (5, 12)
Node21 (6, 7)
Node22 (8, 11)
Node221 (9, 10)
千万不要重新启动左/右索引的顺序; 你会走进一个受伤的世界.
就你的过滤器问题而言,这完全是一个介绍问题.有不同的方法来处理这个问题; 我过去使用的那个是显示通向节点的路径中的所有节点满足您的过滤条件但突出显示"过滤"节点并使它们不可操作(例如,无法在UI中选择,操作可以不要对他们进行等等......).就像是:
Task 1 (In progress) [greyed out, inactive] +Task 2 (Active) +Task 3 (Active)
另一种方法是使用网格/树组合来显示过滤结果,其中节点的路径显示为扁平,但节点下的节点(如果有)显示为树.就像是:
Task1 -> Task 2 (Active) + Task 3 (Active) Task1 -> Task 4 -> Task 6 (Active) + Task 7 (Active)
| 归档时间: |
|
| 查看次数: |
2750 次 |
| 最近记录: |