我有一个父子关系的表我想要递归查询的帮助
表结构
roleId, roleName, parentId
1 Admin 0
2 Backup Admin 1
3 Office User 1 0
4 User 1 3
5 User 2 3
6 Office User 2 0
7 Off User 1 6
Run Code Online (Sandbox Code Playgroud)
我试图进行递归查询,但我无法做,请建议我如何查询数据库,例如
Admin
-- Backup Admin
Office User 1
-- User 1
-- User 2
Office User 2
-- Off User 1
Run Code Online (Sandbox Code Playgroud) 我有这样的数据:(AT sql sERVER)
MemberID,ParemtID,Amt,OtherInfo
1, NULL, 200,dfdsf
2, 1, 300,DFDF
3, 1, 400,DFS
4, 3, 75,NULL
Run Code Online (Sandbox Code Playgroud)
现在我想要像这样构建树:
只使用JS.上面的数据可以用JSON/XML/CSV /格式化文本传递我怎样才能在JS中生成这样的动态树?请不要建议PHP/.NET解决方案.我更喜欢JQuery.
在异常类的层次结构中,catch语句的正确排序是什么,以便允许捕获异常类层次结构中多个类的异常?
是否大多数派生到基地或基地?
我对couchDB很新,甚至在阅读之后(最新的存档已删除)http://wiki.apache.org/couchdb/How_to_store_hierarchical_data(通过'存储每个节点的完整路径作为该节点文档中的属性')它还没有点击.
而不是使用维基中描述的完整路径模式,我希望将子项跟踪为UUID数组,父项作为单个UUID.我倾向于这种模式,所以我可以通过他们在儿童阵列中的位置维持孩子的顺序.
以下是沙发中的一些示例文档,存储桶可以包含存储桶和项目,项目只能包含其他项目.(UUID缩写为清晰):
{_id: 3944
name: "top level bucket with two items"
type: "bucket",
parent: null
children: [8989, 4839]
}
{_id: 8989
name: "second level item with no sub items"
type: "item"
parent: 3944
}
{
_id: 4839
name: "second level bucket with one item"
type: "bucket",
parent: 3944
children: [5694]
}
{
_id: 5694
name: "third level item (has one sub item)"
type: "item",
parent: 4839,
children: [5390]
}
{
_id: 5390
name: "fourth level item"
type: …Run Code Online (Sandbox Code Playgroud) 如果我有一个TreeView(myTreeview),我怎样才能获得所选节点的所有父节点(父节点,父节点的父节点等)的列表?
我在C#中遇到泛型问题我希望你能帮助我.
public interface IElement { }
public interface IProvider<T> where T : IElement {
IEnumerable<T> Provide();
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,它非常简单.我希望提供程序返回特定元素的可枚举.接口的具体实现如下:
public class MyElement : IElement { }
public class MyProvider : IProvider<MyElement> {
public IEnumerable<MyElement> Provide() {
[...]
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我想要使用它时,问题就出现了.这不会编译,因为它无法隐式转换MyProvider为IProvider<IElement>:
IProvider<IElement> provider = new MyProvider();
Run Code Online (Sandbox Code Playgroud)
我必须做一个演员,IProvider<IElement>尽管MyProvider是一个IProvider<MyElement>并且MyElement是一个IElement.我可以通过制作MyProvider实现来避免强制转换IProvider<MyElement>,但为什么它不能解析类型参数中的层次结构?
编辑:根据托马斯的建议,我们可以使其协变T.但是,如果有其他方法,如下面有类型的参数T怎么办?
public interface IProvider<T> where T : IElement {
IEnumerable<T> Provide();
void Add(T …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用封闭表存储的关系数据库内容,在PHP中构建层次结构数组。对于给定的结果,我将拥有该LEAF节点的完整路径,以下内容类似于我的结果集。
1〜root〜根节点
1〜root〜根节点>>> 2〜category1〜第一类
1〜root〜根节点>>> 3〜category2〜第二类
1〜root〜根节点>>> 2〜category1〜第一类>>> 4〜subCatOfCategory1〜Cat 1的SubCategory
无论如何,这些是我的数据库结果。因此,我想遍历它们并在PHP中构建层次结构,以便可以将其转换为JSON并在DOJO中呈现树
因此,当我遍历每一行时,我正在构建到叶子的“路径”,因为仅当元素是“叶”时才需要向树中添加元素。根据这种想法,我决定将每个结果标记,使用“ >>>”作为分隔符,为我提供该行中的节点。然后,我遍历这些节点,并用“〜”标记每个节点,这给了我每个节点的属性。
因此,我有一个for循环来处理每个ROW,它基本上确定了如果要处理的节点不是叶子,则将其ID添加到要跟踪到达最终将要处理的叶子的路径的数组中。然后,当我最终到达LEAF时,可以使用在此过程中编译的PATH调用一个函数来插入节点。
希望一切都有意义..所以我在下面包括了代码..考虑上面的第二个结果。当我处理完整个结果并要调用函数insertNodeInTreeV2()时,数组如下所示...
$fullTree是具有1个元素的阵列,在索引[1]即元素包含一个阵列,四个要素:ID(1),NAME(root),Description(the root node),CHILDREN(empty array)
$pathEntries是一个只有一个元素(1)的数组。这意味着到要插入的LEAF节点的PATH是作为根节点的节点[1]的。
$nodeToInsert是一个具有四个元素的数组:ID(2),NAME(category1),Description(First Category),CHILDREN(empty array)
$treeRootPattern 是一个STRING,其中包含用于存储整个数组/树的变量名,在本例中为“ fullTree”。
private function insertNodeInTreeV2( array &$fullTree, array $pathEntries, array $nodeToInsert, $treeRootPattern )
{
$compiledPath = null;
foreach ( $pathEntries as $path ) {
$compiledPath .= $treeRootPattern . '[' . $path . '][\'CHILDREN\']';
}
// as this …Run Code Online (Sandbox Code Playgroud) php arrays hierarchy multidimensional-array hierarchical-data
我正在预测大量的时间序列(5,000+).如果我在更高级别进行预测,然后将预测分配到每个SKU,我想使用分层方法执行此操作.我认为有必要这样做,以便放大到较低的地理细节水平,同时在更高的层次(自上而下)进行预测.
例如,下面您将看到我正在考虑的结构示例.
Total
=> Europe
=> Netherlands
=> RegionA
=> Client_A_in_Netherlands
=> SKU1
=> SKU2
=> SKU3
=> Client_Q_in_Netherlands
=> SKU15
=> Germany1
=> (...)
=> ClientY_in_Germany
=> SKU89
=> Africa
=> South Africa
=> (...)
=> Client_Z_in_SouthAfrica
=> SKU792
Run Code Online (Sandbox Code Playgroud)
我想在大陆层面(即欧洲或非洲)层面做自上而下的预测.然后将适当的份额分配给国家/地区,然后分配给该国家/地区的客户,然后分配给SKU.
在'hts'包的文档中,有一个关于如何使用两级层次结构执行此操作的示例.我想知道是否有人可以建议如何使用多级层次结构来做到这一点?
我在类型层次结构中调用构造函数的规则时遇到了棘手的问题.这是我做的:
class A{
protected:
int _i;
public:
A(){i = 0;}
A(int i) : _i(i){}
virtual ~A(){}
virtual void print(){std::cout<<i<<std::endl;}
};
class B : virtual public A{
protected:
int _j;
public:
B() : A(){_j = 0;}
B(int i, int j) : A(i), _j(j){}
virtual ~B(){}
virtual void print(){std::cout<<i<<", "<<j<<std::endl;}
};
class C : virtual public B{
protected:
int _k;
public:
C() : B(){_k = 0;}
C(int i, int j, int k} : B(i,j), _k(k){}
virtual ~C(){}
virtual void print(){std::cout<<i<<", "<<j<<", "<<k<<std::endl;} …Run Code Online (Sandbox Code Playgroud) 这是我正在使用的代码:
html,body{
height: 100%;
}
div{
min-height: 100%;
height: auto !important;
height: 100%; /* this is for older IE */
}
Run Code Online (Sandbox Code Playgroud)
这也失败了(但在Opera中有效):
div{
min-height: 100%;
height: auto;
}
Run Code Online (Sandbox Code Playgroud)
所以100%的高度应该应用于所有div,直到html.但这只发生在第一个DIV :(
在Opera中它可以正常工作.第一个DIV是100%的身体,第二个是第一个div的100%,依此类推......
有没有办法让这个在其他浏览器中工作呢?