标签: hierarchical

在SQL Server 2005中排序分层查询

我有以下问题:我有一个用于维护分层数据的表.我想在SQL 2005中使用CTE.

WITH tree (id, parentid, code, name) AS
(
    SELECT id, ofs.ParentID, ofs.code, ofs.name
      FROM OrganizationFeatures ofs
     WHERE ofs.ParentID IS NULL

    UNION ALL

    SELECT ofs.id, ofs.ParentID, ofs.code, ofs.name
      FROM OrganizationFeatures ofs
      JOIN tree ON tree.ID = ofs.ParentID
)

select * from tree
Run Code Online (Sandbox Code Playgroud)

但我想按代码排序,结果如下:

1
1/1
1/1/1
1/1/2
1/2/1
1/2/2
2
4/1
Run Code Online (Sandbox Code Playgroud)

等任何想法?

sql-server sql-server-2005 hierarchical common-table-expression

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

在Java中使用什么策略进行分层重入读/写锁定?

我正在寻找高效的系统,以便分层组织一系列读/写锁,以管理对分层组织资源的访问.如果一个子树被锁定以进行写入,那么在它被释放之前,不应该在整个子树中获得其他锁定; 类似地,子树中的写锁定应该防止在父节点中锁定.

以下是我正在考虑的想法:

  • 使用Apache Commons Transaction.不幸的是,该项目自2008年3月以来一直没有更新,并且已经非正式终止.一些API文档似乎表明即将推出的版本(1.3或2.0)将包含某种层次锁定,但源代码无处可寻,似乎我们无法再访问其SVN存储库.

  • 使用一系列ReentrantReadWriteLocks,我将按层次结构组织.我不是并发专家,我有点害怕自己这样做.初步想法似乎表明,即使在我尝试锁定一个子树之前,我必须在管理ReentrantReadWriteLocks本身的整个结构上使用外锁- 这样即使释放一个锁,我也必须使用外锁...

  • 使用来自java.util.concurrentjava.util.concurrent.atomic实现我的分层锁的类比我用一系列ReentrantReadWriteLocks 更有效.

我已经准备好走最后一条路,但我很惊讶没有找到任何可以更好地解决这个问题的现有图书馆.所以:

  • 我错过了一些明显的解决方案?
  • 或者这个问题特别难以妥善解决?

java locking hierarchical reentrancy readwritelock

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

具有实体框架的闭包表6

我想实现分层数据结构(例如Product - > Product 2 ----> Product3,Product 2 ----> Product4)使用实体框架6代码的第一种方法.有几种方法可用,但我认为封闭表方法可以满足我的所有要求.有人可以指导我如何有效地或任何其他替代方案在实体框架6中实施闭包表方法?

entity-framework hierarchical transitive-closure-table

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

为分层实体设计接口

我必须为分层实体设计一个接口:

interface HierarchicalEntity<T extends HierarchicalEntity<T>> {
    T getParent();
    Stream<T> getAncestors();
}
Run Code Online (Sandbox Code Playgroud)

以前者将返回所有祖先的方式实现默认 getAncestors()方法非常容易.getParent()Stream

实施示例:

default Stream<T> getAncestors() {
    Stream.Builder<T> parentsBuilder = Stream.builder();
    T parent = getParent();
    while (parent != null) {
        parentsBuilder.add(parent);
        parent = parent.getParent();
    }
    return parentsBuilder.build();
}
Run Code Online (Sandbox Code Playgroud)

但是我还需要包含this在流中,这里出现问题.以下行不正确,因为this它是类型HierarchicalEntity,而不是T:

parentsBuilder.add(this); // type mismatch!
Run Code Online (Sandbox Code Playgroud)

如何重新设计界面以使getAncestors()包含this到结果中?

java interface hierarchical java-8 default-method

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

人类可读的URL:最好也是分层的?

在一个关于人类可读URL 的现在迁移的问题中,我允许自己详细描述我的一个爱好:

当我遇到像http://www.example.com/product/123/subpage/456.html我这样的URL时,我总是认为这是尝试创建有意义的分层URL,但这并不是完全分层的.我的意思是,你应该能够一次切掉一个级别.在上面,URL有两个违反此原则的违规行为:

  1. /product/123一个表示为两个级别的信息.它会被更正确地表示为/product:123(或者你喜欢的任何分隔符)
  2. /subpage很可能本身并不是一个实体(即,你不能去了一个从水平456.html作为http://www.example.com/product/123/subpage是"无").

因此,我发现以下更正确:

http://www.example.com/product:123/456.html
Run Code Online (Sandbox Code Playgroud)

在这里,您始终可以一次向上导航一个级别:

  • http://www.example.com/product:123/456.html - 子页面
  • http://www.example.com/product:123 - 产品页面
  • http://www.example.com/ - 根

遵循相同的理念,以下内容将有意义[并提供产品列表的附加链接]:

http://www.example.com/products/123/456.html
Run Code Online (Sandbox Code Playgroud)

哪里:

  • http://www.example.com/products/123/456.html - 子页面
  • http://www.example.com/products/123 - 产品页面
  • http://www.example.com/products - 产品清单
  • http://www.example.com/ - 根

我对这种方法的主要动机是,如果每个"路径元素"(由分隔符/)是自包含的1,您将始终能够通过简单地删除URL的最后一个元素来导航到"父".这是我(有时)在我想要转到父目录时在我的文件浏览器中执行的操作.遵循相同的逻辑线,用户(或搜索引擎/爬虫)也可以这样做.我觉得很聪明.

另一方面(这是问题的重要部分):虽然我永远无法防止用户试图访问他自己截断的URL,但我错误地断言(并且尊重)搜索引擎可能会做同样的事情?也就是说,期望没有搜索引擎(或者真的:Google)会尝试访问http://www.example.com/product/123/subpage(上面的第2点)是否合理?(或者我真的只考虑人为因素吗?)

这不是关于个人偏好的问题.这是关于我对爬虫/索引器的期望以及在设计URL时我应该考虑非人类URL操作的范围的技术问题.

此外,结构"深度" http://www.example.com/product/123/subpage/456.html是4,其中http://www.example.com/products/123/456.html只有3.有传言说这个深度影响搜索引擎排名.至少,所以我被告知.(现在很明显,搜索引擎优化并不是我最了解的.)这是(仍然?)真的:层次深度(目录数量)是否会影响搜索排名?

那么,我的"预感"在技术上是合理的还是我应该把时间花在其他事情上?


示例:这样做(差不多)正确的
好,所以这几乎是正确的.例证:个人资料,例如http://stackoverflow.com/users/52162:

  • http://stackoverflow.com/users/52162 - 单个档案 …

url seo hierarchical human-readable url-modification

6
推荐指数
1
解决办法
1185
查看次数

Spring分层上下文

我有以下问题:我正在尝试在现有的耳朵应用程序中实现Spring (使用Jboss作为App Server和Hibernate作为ORM).ear应用程序包括war(基本上很少有简单的servlet),har(hibernate archive只有数据模型 - 作为类和相应的hibernate映射文件 - 作为xmls),sar(只有一个解析类作为计划任务).所以,我很感兴趣如何在战争中共享har存档的最终appContext(因为servlet正在从数据库中检索数据)和sar(因为解析器正在"填充"数据库).关于这一点,(战争和SAR)应使用单SessionFactory的豆这将在har的背景下定义.代码示例或代码段将受到高度赞赏.

jboss spring hibernate hierarchical applicationcontext

6
推荐指数
0
解决办法
508
查看次数

在高写入负载下在MySQL中存储分层数据

我正在构建应该具有高写入负载的Web应用程序以及表示用户定义/构造树的数千甚至数百万个分层记录.我不是试图用线程构建论坛,而是用数千个小型层次结构构建庞大的数据库(树木最多有10-20个后代)......

我知道存储层次结构的许多模型 - 目前我使用的是嵌套集,但是具有大量数据和负载的性能是个问题.我也怀疑邻接列表或类似的东西可以解决这个问题.

我一直在试验Mongo数据库,它是超高速键/值存储但我只能使用MySQL.

我想听听其他人遇到类似问题的经历.

mysql tree hierarchy hierarchical

6
推荐指数
1
解决办法
421
查看次数

SQL Server:查询分层和引用的数据

我正在开发一个具有层次结构的资产数据库.此外,还有一个"ReferenceAsset"表,可以有效地指回资产.参考资产基本上用作覆盖,但它被选择为好像它是一个独特的新资产.设置的覆盖之一是parent_id.

与选择层次结构相关的列:
资产:id(主要),parent_id
资产参考:id(主要),asset_id(foreignkey-> Asset),parent_id(始终为资产)
--- EDITED 5/27 ----

样本Relevent表数据(连接后):

   id  | asset_id | name         |  parent_id  | milestone | type

    3       3       suit               null        march      shape
    4       4       suit_banker         3          april      texture
    5       5       tie                null        march      shape
    6       6       tie_red             5          march      texture
    7       7       tie_diamond         5          june       texture
   -5       6       tie_red             4          march      texture
Run Code Online (Sandbox Code Playgroud)

id <0(如最后一行)表示引用的资产.引用的资产有几个被覆盖的列(在这种情况下,只有parent_id很重要).

期望是如果我从四月选择所有资产,我应该进行二次选择以获得匹配查询的整个树分支:

所以最初查询匹配会导致:

    4       4       suit_banker         3          april      texture
Run Code Online (Sandbox Code Playgroud)

然后在CTE之后,我们得到完整的层次结构,我们的结果应该是这个(到目前为止这是有效的)

    3       3       suit               null        march      shape
    4       4       suit_banker         3          april      texture …
Run Code Online (Sandbox Code Playgroud)

sql sql-server hierarchical

6
推荐指数
1
解决办法
1280
查看次数

Solr的分层分面搜索示例

在哪里可以找到一个完整的示例,显示分层分面搜索如何从索引文档到检索搜索结果?

我的研究到目前为止

Stackoverflow有一些帖子,但它们都只涉及分层分面搜索的某些方面; 因此,我不认为它们是重复的.我正在寻找一个完整的例子来理解它.我一直错过聚合工作的最后一个查询.

Solr网页上有文档,但不理解那里给出的示例.

示例(概念上)

我想在这里创建一个完整的演练示例,并希望您能提供缺失的最终作品.

测试数据

输入

假设我们有3个文档,每个文档都是一个人.

Alice (document 1)
 - Blond
 - Europe

Jane (document 2)
 - Brown
 - Europe/Norway

Bob (document 3)
 - Brown
 - Europe/Norway
 - Europe/Sweden
Run Code Online (Sandbox Code Playgroud)

产量

此(当前错误)查询的预期输出

http://server:8983/solr/my_core/select?q=*%3A*&wt=json&indent=true&facet=true&facet.field=tags_ss
Run Code Online (Sandbox Code Playgroud)

应该

Hair_color (3)
- blond (1)
- brown (1)
- black (1)

Location (3)
- Europe (4)  // This should be 4 not 3, i.e. the sum of the leaves, because Alice is tagged with "Europe" only, without …
Run Code Online (Sandbox Code Playgroud)

solr hierarchical faceted-search

6
推荐指数
1
解决办法
4402
查看次数

具有嵌套数据结构的 Flutter BloC

我有一个嵌套结构,如下所示:

List<Areas>
|-- List<Topics>
|   |-- List<Exercises>
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序的工作流程:

  1. 应用程序已打开
  2. 获取API并显示列表Areas
  3. 用户选择Area并转到下一个屏幕
  4. 获取API并显示主题列表
  5. 用户选择Topic并转到下一个屏幕
  6. 获取API并显示练习列表
  7. 用户需要完成所有这些

我开始使用BloC,但我不确定是否应该对每种类型的数据使用一个 Bloc(因此一个 bloc for Areas,另一个 for Topics,另一个 for Exercises)或仅在一个 Bloc 中处理整个结构。

我看到一个问题,其中State包含整个结构,并且每次从 中获取嵌套列表时都需要更新API。也许这会导致内存问题?

另一方面,每种数据类型都有一个 Bloc 将使它们之间的通信变得复杂。

state management如果更有意义的话,我也愿意改用另一种技术。

任何帮助,将不胜感激。

多谢。

nested hierarchical state-management flutter bloc

6
推荐指数
1
解决办法
339
查看次数