标签: hierarchy

有趣的树/分层数据结构问题

大学有不同的组织部门的方式.有些学校去了School -> Term -> Department.其他人介于两者之间,最长的是School -> Sub_Campus -> Program -> Term -> Division -> Department.

School,Term和,并且Department是学校的"树"部门中唯一存在的.这些类别的顺序永远不会改变,我给你的第二个例子是最长的.每一步都是1:N的关系.

现在,我不确定如何建立表之间的关系.例如,列中包含哪些列Term?其母公司可能是Program,Sub_CampusSchool.它取决于学校的系统.我可以设想将Term表设置为所有这些(所有这些都默认为NULL)的外键,但我不确定这是在这里做事的规范方式.

sql database tree normalization hierarchy

7
推荐指数
1
解决办法
1216
查看次数

如何查询MySql表以显示根及其子项.

UserID      UserName       ParentID      TopID
  1         abc            Null           Null
  2         edf             1             1
  3         gef             1             1
  4         huj             3             1
  5         jdi             4             1
  6         das             2             1
  7         new            Null           Null
  8         gka             7             7
Run Code Online (Sandbox Code Playgroud)

TopID和ParentID来自userID

我想获得用户记录及其子和子记录.这里userid1是root,其子节点是userid2和userid 3.所以如果用户id是1,我必须显示从userid 1到userid 6的所有记录,因为所有记录都是root的子节点和SUbchild.类似地,对于userid3,如果用户标识是3,我必须显示userid3及其子Userid 4和Userid用户4 Userid5

输出应该是

Userid  Username
3          gef
4          huj
5          jdi
Run Code Online (Sandbox Code Playgroud)

我将了解userid和topID,以便我如何进行查询以实现上述结果.

SELECT UserID, UserName  FROM tbl_User WHERE ParentID=3 OR UserID=3 And TopID=1;
Run Code Online (Sandbox Code Playgroud)

通过上面的查询,我能够显示用户ID 3和用户ID 4我无法显示用户ID 5,其中有种类.需要帮忙.谢谢

mysql sql parent-child hierarchy

7
推荐指数
2
解决办法
5635
查看次数

如何引用"最顶层"视图?

iOS编程方面,如何才能找到最顶端的 东西UIView

换句话说..现在显示什么视图?

说,我有一个笔尖,3个视图堆叠在一起.在程序内部,如果我知道它是什么,我可以删除顶视图.我怎样才能找到笔尖上的视图?

hierarchy uiview ios

7
推荐指数
1
解决办法
6977
查看次数

我对任意深度分层数据集的嵌套集很敏感:好还是坏?

在重新创建CMS时,我想要替代传统的父/子方法来管理站点地图/页面层次结构.我记得有一段时间看到嵌套的模型,但是不记得它叫什么了.所以,我偶然发现了一个类似的方法,我想评估和比较属性,确保我不会在以后遇到愚蠢的限制,因为我没有采用已经过时间测试的方法.所以,请告知A)它是否已经被发明(它叫什么?!),B)属性中存在根本缺陷,或者C)这是一个很好的方法(请给出正确的理由!).

考虑这个清单:

    • 关于我们
    • 联系我们
    • 制品
      • 服装
      • 图书
      • 电子产品
    • 知识库
    • 其他的东西

在嵌套集模型下,我相信您使用深度优先遍历存储每个节点的左/右描述符:

Home                  1-18
    About Us          2-3
    Contact Us        4-5
    Products          6-13
        Clothing      7-8
        Books         9-10
        Electronics  11-12
    Knowledge Base   14-15
    Other stuff      16-17
Run Code Online (Sandbox Code Playgroud)

这是我开始喜欢的"错误方式":

Home                  1-9
    About Us          2-2
    Contact Us        3-3
    Products          4-7
        Clothing      5-5
        Books         6-6
        Electronics   7-7
    Knowledge Base    8-8
    Other stuff       9-9
Run Code Online (Sandbox Code Playgroud)

我存储的是ID和LAST_CONTAINED_ID,而不是左/右对.我发现许多属性都是相同的(或非常相似):

  • 根节点是ID = 1
  • 对于"叶子",两个属性是相等的,而对于分支,它们不是
  • 任何给定节点的"子节点"总数为LAST_CONTAINED_ID - ID
  • 所有包含的节点都有一个ID>容器的ID,但<=容器的LAST_CONTAINED_ID
  • 祖先节点的ID <子ID,但是LAST_CONTAINED_ID> =子ID
  • 深度是祖先节点的SUM

此外,ID提供特定于订单的唯一标识符(没有间隙!).为了简单起见,我发现存储DEPTH和PARENT参考也更容易,但对于嵌套集来说,这与我的理解基本相同.

那么,这算作嵌套吗?它是否已经是一种常见的方法(但为什么我之前没有听说过......)?我有理由在这个上使用真正的嵌套集吗?

我欢迎你的想法.

php mysql traversal hierarchy relational-database

7
推荐指数
1
解决办法
858
查看次数

折叠/展开d3.js中树的子节点?

我正在构建一个树结构(或者在我自己的json中用一组我自己的数据修改其中一个示例)并且我正在尝试创建一些功能:

我的树的布局是从树的例子:http: //mbostock.github.com/d3/ex/cluster.html

我正在添加(向圈子)一个onclick事件,我想要折叠点击节点的子节点.也就是说,当用户点击与节点关联的钢蓝色圆圈时,我希望节点子节点消失.

我已经搜索了文档,我没有发现任何可以让我让节点崩溃或消失的东西.

我能做什么?

hierarchy d3.js force-layout

7
推荐指数
1
解决办法
2万
查看次数

什么是特殊异常类的需要?

为什么C++标准会打扰发明std::exception类?他们的好处是什么?我的理由是:

try
{
  throw std::string("boom");
}
catch (std::string str)
{
  std::cout << str << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

工作良好.后来,如果我需要,我可以制作自己的轻量级"异常"类型.那我为什么要打扰std::exception

c++ stl exception hierarchy

7
推荐指数
2
解决办法
1581
查看次数

走一个分层的树

我希望能够通过分层集群"遍历"(迭代)(参见下图和代码).我想要的是:

  1. 采用矩阵和最小高度的函数.在这个例子中说10.

    splitme <- function(matrix, minH){
        ##Some code
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 从顶部minH开始,每当有新的分割时开始切割.这是第一个问题.如何检测新的分裂以获得高度h.

  3. 在这个特殊情况下h,有多少个集群?检索群集

    mycl <- cutree(hr, h=x);#x is that found h
    count <- count(mycl)# Bad code
    
    Run Code Online (Sandbox Code Playgroud)
  4. 保存每个新矩阵的变量.这是另一个艰难的,x new矩阵的动态创建.所以也许一个带集群的函数做了需要做的事情(比较)并返回一个变量??

  5. 继续3和4直到minH达到

数字

在此输入图像描述

# Generate data
set.seed(12345)
desc.1 <- c(rnorm(10, 0, 1), rnorm(20, 10, 4))
desc.2 <- c(rnorm(5, 20, .5), rnorm(5, 5, 1.5), rnorm(20, 10, 2))
desc.3 <- c(rnorm(10, 3, .1), rnorm(15, 6, .2), rnorm(5, 5, .3))

data <- cbind(desc.1, desc.2, desc.3)

# Create dendrogram
d …
Run Code Online (Sandbox Code Playgroud)

r matrix hierarchy

7
推荐指数
1
解决办法
831
查看次数

r - 来自子/父关系的分层数据帧

我有一个子 - 父数据.我想要转换为一个包含所有级别和级别编号的完整分层列表.下面的示例数据分为三个级别,但可能更多.我可以使用什么功能来转换数据?

资源:

data.frame(name = c("land", "water", "air", "car", "bicycle", "boat", "balloon",
  "airplane", "helicopter", "Ford", "BMW", "Airbus"), parent = c(NA, NA, NA, 
  "land", "land", "water", "air", "air", "air", "car", "car", "airplane"))

         name   parent
1        land     <NA>
2       water     <NA>
3         air     <NA>
4         car     land
5     bicycle     land
6        boat    water
7     balloon      air
8    airplane      air
9  helicopter      air
10       Ford      car
11        BMW      car
12     Airbus airplane
Run Code Online (Sandbox Code Playgroud)

目的地:

data.frame(level1 = c("land", "water", "air", "land", "land", "water", "air", …
Run Code Online (Sandbox Code Playgroud)

r hierarchy hierarchical-data

7
推荐指数
2
解决办法
2795
查看次数

MySQL Recursive从父级获取所有子级

我有这种情况使用Mysql上的递归查询在一个表上找到lv 2和lv3子...
我正在使用的数据库结构:

id name parent
1    A    0
2    B    0
3    C    0
4    D    1
5    E    1
6    F    2
7    G    2
8    H    3
9    I    3
10   J    4
11   K    4
Run Code Online (Sandbox Code Playgroud)

我期望的结果,当过滤数据时,id = 1,它将产生我期待的结果.

id name parent
4   D     1
5   E     1
10  J     4
11  K     4
Run Code Online (Sandbox Code Playgroud)

或者这就是例证. 插图

我一直在寻找各地,并阅读这个http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/,但我没有找到我正在寻找的结果..
任何帮助将不胜感激, 谢谢

mysql hierarchy recursive-query hierarchical-data

7
推荐指数
3
解决办法
2万
查看次数

Sitecore内容树架构

假设项目中存在一个呈现无序列表的表示组件(可能称为ListRenderer).我们有几个选项可以向页面上任何给定的ListRenderer提供数据:

  1. 在内容项上有一个TreeList(或TreeListEx)字段,并从中读取ListRenderer.
  2. 通过演示详细信息向ListRenderer提供DataSource(或其他参数).

我通常在我的项目中避免使用#1,因为它将Sublayouts绑定到模板,这会非常混乱.如果沿着这条路走下去,最终你将拥有支持项目中每个潜在子布局的字段.

所以我的解决方案倾向于选项#2,它摆脱了这个问题.然而,它确实带有一系列问题.我在哪里为给定的ListRenderer使用这些不同的"列表"?为了最大化重用和共享,我通常在站点根目录附近创建一个包含所有这些类型的组件的组件目录,如果我预测将共享列表.对于内容作者来说,这似乎更难找到并且更难以使用,他们突然不知道他们的ListRenderer的来源在哪里,除非他们知道如何破解演示细节(这对我的普通用户来说略微提前).

如果我觉得列表不会被共享,并且非常特定于页面,我会将它们直接放在相关项目的下方.然而,这倾向于混淆内容树,并且任何动态生成的导航子布局然后必须在其生成到其的链接之前检查项目是否是实际页面.我在Sitecore中工作的越多,我使用这种方法的次数就越少,但对内容作者来说似乎更容易.使用此方法时,可以更轻松地访问信息.

是否有任何行业认可的方法来解决这个问题?它始终在项目中发生,在我的脑海中,我努力在这些情况下平衡技术和内容作者关注问题.

sitecore hierarchy sitecore6

6
推荐指数
2
解决办法
1011
查看次数