小编ora*_*ips的帖子

在关系数据库中存储分层数据有哪些选项?

好的概述

一般来说,您要在快速读取时间(例如,嵌套集)或快速写入时间(邻接列表)之间做出决定.通常,您最终会得到最适合您需求的以下选项组合.以下提供了一些深入阅读:

选项

我知道和一般的功能:

  1. 邻接清单:
    • 列:ID,ParentID
    • 易于实施.
    • 便宜节点移动,插入和删除.
    • 昂贵的找到水平,血统和后代,路径
    • 在支持它们的数据库中通过公用表表达式避免使用N + 1
  2. 嵌套集(又名修改的预订树遍历)
    • 列:左,右
    • 便宜的血统,后代
    • 非常昂贵的O(n/2)移动,插入,由于易失性编码而删除
  3. 桥表(又名闭包表/ w触发器)
    • 使用单独的连接表:祖先,后代,深度(可选)
    • 廉价的血统和后代
    • 写入O(log n)插入,更新,删除的成本(子树的大小)
    • 规范化编码:适用于连接中的RDBMS统计信息和查询规划器
    • 每个节点需要多行
  4. 谱系列(又名物化路径,路径枚举)
    • 专栏:血统(例如/父母/孩子/孙子/等......)
    • 廉价后代通过前缀查询(例如LEFT(lineage, #) = '/enumerated/path')
    • 写入O(log n)插入,更新,删除的成本(子树的大小)
    • 非关系型:依赖于Array数据类型或序列化字符串格式
  5. 嵌套间隔
    • 像嵌套集一样,但是使用实数/浮点数/小数,这样编码就不易变(廉价的移动/插入/删除)
    • 有实/浮/十进制表示/精度问题
    • 矩阵编码变体为"自由"添加了祖先编码(物化路径),但增加了线性代数的诡计.
  6. 平表
    • 修改的Adjacency List,为每条记录添加Level和Rank(例如排序)列.
    • 便宜迭代/分页
    • 昂贵的移动和删除
    • 好用:线程讨论 - 论坛/博客评论
  7. 多个谱系列
    • 列:每个谱系级别一个,指向根目录的所有父级,从项目级别向下的级别设置为NULL
    • 便宜的祖先,后代,水平
    • 便宜的插入,删除,移动的叶子 …

sql database tree relational-database hierarchical-data

1281
推荐指数
7
解决办法
23万
查看次数

没有链接的文档有哪些有用的排名算法?

我查看了智能Web的算法,它描述了一个有趣的算法(第55页),用于创建类似于商业文档得分的PageRank(即没有PDF,MS Word文档等链接的文档......).简而言之,它分析集合中每个文档之间的术语频率交集.

任何人都可以识别其他地方描述的有趣算法,或者想在这里分享一些新颖的东西,以应用这些类型的文档来改善搜索结果吗?

请放弃涉及点击跟踪或其他操作的答案,而不是分析实际文档.

algorithm search machine-learning

15
推荐指数
1
解决办法
3416
查看次数

Railo,Open Bluedragon和Adobe Coldfusion之间有什么值得注意的差异?

尝试捕获实现之间的显着差异:

  1. Adobe ColdFusion
  2. Railo
  3. 打开Bluedragon

(我知道史密斯,但不相信它仍然活跃).

包括CFML 平台差异 - 语法,功能和可扩展性.

请注意,这不是我在其他任何地方都看不到的东西,但也许我只是没有正确搜索.因此,到那一端的链接也会计算在内.

更新

这是我在这个背景下值得注意的定义:简化解决难题的东西.例如,Railo提供<cfvideo>标记,用于转码视频 - 这是一项非常重要的任务.

我建议的东西并不值得注意:Railo函数ListAvg().

coldfusion openbd railo coldfusion-9 cfml

10
推荐指数
1
解决办法
4077
查看次数

IsValid()是否可以防止XSS?

使用IsValid()验证电子邮件地址或URL格式是否可以保护XSS?当指定其他格式时,它是否否定XSS?

email xss validation url coldfusion

9
推荐指数
1
解决办法
852
查看次数

java中的ProcessBuilder环境变量

我正在尝试为ProcessBuilder对象添加一个环境变量,但是当我在ProcessBuilder中调用该新变量时,我收到一个错误.这就是我构建流程的方式

public class OTU
{
    public static void main(String[] args) throws Exception
    {
        ProcessBuilder pb = new ProcessBuilder();
        Map<String, String> env = pb.environment();
        //set environment variable u
        env.put("u", "util/");

        pb.command("echo $u");
        Process p = pb.start();
        String output = loadStream(p.getInputStream());
        String error  = loadStream(p.getErrorStream());
        int rc = p.waitFor();
        System.out.println("Process ended with rc=" + rc);
        System.out.println("\nStandard Output:\n");
        System.out.println(output);
        System.out.println("\nStandard Error:\n");
        System.out.println(error);
    }

    private static String loadStream(InputStream s) throws Exception
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(s));
        StringBuilder sb = new StringBuilder();
        String …
Run Code Online (Sandbox Code Playgroud)

java unix processbuilder

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

工作流程(即定向图)基于浏览器的编辑器

我想提供一个WYSIWYG工具,最好是基于JavaScript的工具,用于工作流程图(即有向图).我需要商业软件友好许可,其中包括向OEM支付费用.如果有必要的服务器端部件,我需要它在Java或ColdFusion中,因为我正在与现有产品集成.

我的工作流图可以有多个起始顶点,但只有一个末端顶点,并且边是指向的.超越所见即所得的编辑,我正在寻找一个可以协助以下工具的工具:

  1. 能够导出图形,因此它可以是:
    1. 坚持
    2. 由编程语言解析(我假设是XML,但其他格式都很好).
    3. 再次编辑(保留布局信息)
  2. 将任意数据与边和顶点相关联,包括定义视图/编辑窗格的功能.

很高兴有:

  1. 检测是否有任何顶点无法到达终点.
  2. 如果未提供绘图信息,则自动布置顶点和边.

我看过mxGraph,看起来很有希望,但我希望这里的回答者可以在我跳下兔子洞之前提供一些额外的方向.

javascript java coldfusion workflow

8
推荐指数
1
解决办法
1676
查看次数

内存泄漏在cffunction内部循环cfmodule

Google员工,如果你有一个带有coldfusion.runtime.CFDummyComponent读取根的堆转储.

2011年2月22日更新

MXUnit成名的Marc Esher在不同的背景下发现了完全相同的错误.他的解决方案包括了从去解决的查询一个大循环query="name"from="1" to="#name.recordcount#" index="row".另一种有效的方法是<cfthread>在循环内部使用:

<cfloop ...>
    <cfset threadName = "thread" & createUuid()>
    <cfthread name="#threadName#">
        <!--- do stuff --->
    </cfthread>
    <cfthread action="join" name="#threadName#">
</cfloop>
Run Code Online (Sandbox Code Playgroud)

当您遇到需要在循环内部执行操作(如查询和<cfmodule>内部)<cffunction>以便消耗的内存仅用于该迭代时,这非常有效.

老问题

希望别人可以确认或告诉我我做错了什么.我能够通过调用文件oom.cfm(如下所示)一致地重现运行的OOM.使用jconsole我能够看到请求消耗内存并且永远不会释放它直到完成.问题似乎是<cfmodule>在内部调用<cffunction>,如果我注释掉<cfmodule>调用,那么在请求运行时会收集垃圾.

ColdFusion版本:9,0,1,274733

JVM参数

java.home=C:/Program Files/Java/jdk1.6.0_18
java.args=-server  -Xms768m -Xmx768m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=512m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application.home}/servers/41ep8/cfusion.ear/cfusion.war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application.home}/servers/41ep8/cfusion.ear/cfusion.war/WEB-INF/cfusion/lib/neo_jaas.policy -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=56033
Run Code Online (Sandbox Code Playgroud)

测试用例

oom.cfm(以下称为template.cfm - Adobe Bug#85736)

<cffunction name="fun" output="false" access="public" returntype="any" hint="">
    <cfset var local …
Run Code Online (Sandbox Code Playgroud)

coldfusion memory-leaks coldfusion-9

8
推荐指数
1
解决办法
1663
查看次数

coldfusion.util.Key内存泄漏 - 结构键问题?

一直以来,我能够在ColdFusion 9.01上使用以下代码生成Java Heap Space OutOfMemory异常(尚未尝试过早期版本):

<cfset uuidGenerator = createObject("java", "java.util.UUID")>
<cfset transient = structNew()>
<cfloop from="1" to="100000" index="index">
    <cfset transient[uuidGenerator.randomUUID().toString()] = true>
</cfloop>
Run Code Online (Sandbox Code Playgroud)

上面的代码使用Java UUID类,因为它比ColdFusion更快.请求后结构本身不存在(即它不在某些持久范围内application).

作为测试,我在初始化服务器之后生成堆转储.然后我多次运行这段代码,看看终身代通过jConsole填充.之后,我运行另一个堆转储.使用Eclipse Memory Analysis Tool的Leak报告,我可以看到一个根据的大对象coldfusion.util.Key.

我在这里问,希望其他人遇到类似的问题,如果是这样的话,他们已经做了什么来解决它.

coldfusion memory-leaks

5
推荐指数
1
解决办法
1577
查看次数

有什么更好的方法来创建一个需要很多参数的方法?(10+?)

我正在查看一些开发人员的代码,几乎哭了.在方法定义中有12个参数.根据我的经验......这不好.如果是我,我会发送某种对象.

有没有其他/更优选的方法来做到这一点(换句话说,解决这个原因的最佳方法是什么)?

public long Save (
    String today, 
    String name, 
    String desc, 
    int ID, 
    String otherNm, 
    DateTime dt, 
    int status, 
    String periodID, 
    String otherDt, 
    String submittedDt
)
Run Code Online (Sandbox Code Playgroud)

忽略我糟糕的变量名 - 他们就是例子

language-agnostic coding-style

5
推荐指数
1
解决办法
138
查看次数

比较两个字符串或对象并获得差异

我想在我的网站上实现一种版本历史记录,我需要一种比较字符串或对象键的方法.例如:

原始字符串/对象键:棕色狐狸更快

修改过的字符串/对象键:快速的棕色狐狸跳过了懒兔子

修改:添加了跳过懒兔子删除了

我想只保存历史表中的修订版.我真的不知道从哪里开始,所以任何想法如何让我去或建议的方法将非常感激.

我知道find()函数,我怀疑它是一个主要的候选使用,但我不知道如何将它可视化为一个解决方案,因为它比较字符串"批发"可以这么说.

string coldfusion diff coldfusion-9

3
推荐指数
1
解决办法
1539
查看次数

Bamboo + sonar.dynamicAnalysis = reuseReports = 0%规则合规性

Bamboo可用于连续构建,但希望使用Sonar进行质量指标跟踪.必须在Bamboo中捕获单元测试通过/失败和Clover代码覆盖率指标.但是,这些相同的值也应该发送到Sonar,以便不通过运行单元测试和Clover两次来增加构建持续时间.

已经能够使用maven构建的"sonar.dynamicAnalysis = reuseReports"指令将这些指标从Bamboo构建发送到Sonar.但Sonar的"规则合规性"指标为0%.

根据之前的修改而不使用指令,规则合规性得分更高.所以很明显使用该指令会以某种方式阻止计算该指标.

有谁知道如何使用此指令并获得规则合规性分数?或者他们可以指出要帮助诊断的东西吗?使用"-e"选项运行maven并没有提供任何特别有用的东西.

java bamboo sonarqube

3
推荐指数
1
解决办法
3787
查看次数

适用于AJAX和Flash内置的CFIDE无法访问Web的解决方法

ColdFusion的几个功能 - 媒体播放器和多文件上传器 - 基于可用的JavaScript库/CFIDE/scripts,即使scriptsrc配置了它Application.cfc.请参阅此处的错误以获取参考:http://www.elliottsprehn.com/cfbugs/bugs/83328

不幸的是,从ColdFusion安装中按原样暴露CFIDE目录存在安全风险.因此,我正在尝试确定正确的前进路径,以使我的应用程序能够使用此功能,同时不会暴露此漏洞.皱纹是我正在运送产品,所以我试图想象一个解决方案,我可以使用安装程序或文档轻松自动化,系统管理员应该没有设置的麻烦.

这些是我提出的选择:

  1. 文档或安装程序创建一个空目录并虚拟映射为/CFIDE.scripts从其下的ColdFusion安装中复制文件夹的内容.
  2. 仅分发我需要修改的文件,并确保引用的.swfs位于其更改的任何位置(路径相对于CFIDE /脚本):
    1. /ajax/package/cffileupload_swf.js
    2. /ajax/package/cfmediaplayer.js

哪个选项似乎更好?或者你有更好的主意吗?

coldfusion coldfusion-9

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

如何摆脱没有本地范围的Evaluate()(CF9之前)?

好吧,这个功能没有意义,但我只是用它作为一个例子:

<cffunction name="blah">
    <cfset var myFoo = 123>
    <cfset var varNamePrefix = "my">

    <cfset var bar = Evaluate("#varNamePrefix#Foo")>

    <cfreturn bar>
</cffunction>
Run Code Online (Sandbox Code Playgroud)

使用CF9,我可以使用local["#varNamePrefix#Foo"].有没有办法让CF7/8摆脱Evaluate()没有重构整个事情var local = structNew()

coldfusion

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