当前位置: 首页 > 面试题库 >

如何以层次结构显示非规范化数据?

毋宸
2023-03-14
问题内容

我的问题是我想按层次结构显示数据,如下所示:

  • Democrat
    County Clerk

    Candidate 1
    Candidate 2
    Magistrate
    Candidate 1
    Candidate 2
    *Candidate 3

但是我正在像这样检索数据集:

Party | Office | Candidate
--------------------------------------------
Democrat | County Clerk | Candidate 1
Democrat | County Clerk | Candidate 2
Democrat | Magistrate | Candidate 1
Democrat | Magistrate | Candidate 2
Democrat | Magistrate | Candidate 3

我计划使用嵌套的中继器,但是我需要一个不同的Party值,然后才需要该聚会中不同的办公室名称值。

是否有.NET函数可以轻松完成我要尝试的操作?除了转发器以外,还有更好的显示信息的方法吗?

提前致谢!


问题答案:

如果可以修改存储过程,则建议以邻接表的形式显示结果集:

ID    Name          ParentID
1     Democrat      NULL
2     County Clerk  1
3     Magistrate    1
4     Candidate 1   2
5     Candidate 2   2
6     Candidate 1   3
7     Candidate 2   3
8     Candidate 3   3

它减少了检索到的数据量,并允许您针对父子关系进行递归编程。您只需从根开始。通过直接在StringBuilder中构建字符串文字,此方法避免了使用嵌套重复器的麻烦。

StringBuilder sb = new StringBuilder();
DataTable dt = new DataTable();
someDataAdapter.Fill(dt);

// find the roots:
DataRow[] roots = dt.Select("parentId is null");

sb.Append("<ul>");
foreach (DataRow child in roots)
{
    WriteNode(child, sb);
}
sb.Append("</ul>");


// recursively write out each node
public static void WriteNode(DataRow row, StringBuilder sb) {
    sb.Append("<li>"); 
    sb.Append(row["Name"]);

    // find children rows...
    DataRow[] children = row.Table.Select("parentId = " + row["id"].ToString());
        if (children.Length > 0)
        {
            sb.Append("<ul>");
            foreach (DataRow child in children)
            {
                WriteNode(child, sb);
            }
            sb.Append("</ul>");
        }

        sb.Append("</li>");
    }


 类似资料:
  • 问题内容: 好的,我刚开始使用Firebase。我已阅读:https://www.firebase.com/docs/data- structure.html, 并且已阅读:https://www.firebase.com/blog/2013-04-12-denormalizing- is- normal.html 所以我很困惑,因为一个似乎与另一个矛盾。您可以按层次结构组织数据,但是如果您想使其

  • 非规范化数据不存储规范化的数据。换句话说非规范化意味着相同数据的多个拷贝同时存在。 上一章中,我们在帖子中非规范化评论总数,以避免每次都加载所有的评论。在数据建模意义上说这是冗余的,因为我们可以通过计数每个评论,随时计算出该总数(当不考虑运行速度)。 非规范化通常意味着额外的开发工作。在例子中,我们每次添加或删除评论时,还需要同时更新相关的帖子,以确保 commentsCount 字段保持准确。这

  • 我想使用Batchnormalization来规范化批次维度,但keras中的批次维度自然是无维度的。那我该怎么办呢。 keras示例显示,conv2d的轴为-1,这表示通道尺寸。 轴:整数,应规格化的轴(通常是特征轴)。例如,在具有data\u format=“channels\u first”的Conv2D层之后,在BatchNormalization中设置axis=1。

  • 问题内容: 我最近在求职的实际测试中面对这个问题。 假设您得到了一个像这样的平面数据结构: 现在,从上面的平面数据结构中,我们想要显示类似下面的分层树结构的内容。 然后,如果我要向我的数组添加另一个条目,例如: 然后它应该在下面显示条目。 所以对于我目前正在使用的这类东西,可以遍历到第二级,但是不能遍历第三级。那么执行此操作的最佳方法是什么? 谢谢 编辑: 我被要求仅使用基于DOS的Java应用程

  • D3 具有多种布局,用于严格树的有向图,如下所示: 我需要绘制一个不是树的节点层次结构,而是一个有向无环图。这是树布局的问题,因为几个分支收敛: 有人知道一般层次结构的D3布局吗?或者,对现有的treelayout进行一些巧妙的破解?我注意到GraphVis很好地处理了这种情况,但D3生成的图更适合这里的需求。

  • 5.4.1 层次化体系结构 层次化设计是构造复杂系统的一个基本方法,按此方法设计出的系统具有层次化体系结构。现实世界中这种层次化结构俯拾皆是。例如,一幢高楼总是从最底层打基础开始,一层 一层地加高。又如,我国的行政组织具有街道、区、市、省、中央这样的层次化结构。 计算机软件的各个构件也经常组织成这样的层次体系结构。在层次体系中,下层构件为 上层构件提供服务,上层构件使用下层构件的服务,上层和下层之