不知道如何框架这个,但在这里。排序线程对话
这是一个排序算法问题
工具我有玩的服务器和JavaScript/jQuery的在浏览器端
我需要移动数据对PostgreSQL的和python(2.6)描述螺纹从postgres数据库到网页的对话。该数据按照时间顺序开始了,我想在线程显示
创纪录的数字是小的 - 应该不会超过100条短信返回
所以,作为一个简单的例子,假设表:
ID Reply_To Text
=== ======== =============================
1 0 Hello World
2 0 Make me a sandwich
3 1 Hello back
4 2 No chance
5 1 Who are you?
6 5 Me of course
终点我想达到的
- 的Hello World
- 你好回
- 你是谁?
- 我当然
- 让我一个三明治
- 没有机会
或者,换一种方式......
ID Reply_To Text
=== ======== =============================
1 0 Hello World
3 1 Hello back
5 1 Who are you?
6 5 Me of course
2 0 Make me a sandwich
4 2 No chance
我并没有在这里找到完整的解决方案,所有ajax,json和格式化的东西,我很乐意继续。
我只是遇到了问题,让我的头脑最好的方式来管理排序。
SQL?蟒蛇? JavaScript的?
我目前正在与阵列各种打在Javascript(因为没有更好的原因,而不是事实,我的Python的技能是非常弱)
编辑 目前我在这样的:
function byThread(a,b) {
if (a.reply > b.id && a.reply != 0){
console.log("Compared id=" + a.id + " with id=" + b.id + " and returned -1 ")
return -1;
}
if (a.id > b.reply && b.reply != 0){
console.log("Compared id=" + a.id + " with id=" + b.id + " and returned 1 ")
return 1;
}
console.log("Compared id=" + a.id + " with id=" + b.id + " and returned 0 ")
return 0;
}
msg.sort(byThread);
它很令人沮丧地关闭
你可能会有所帮助:[图表](http://www.artfulsoftware.com/mysqlbook/sampler/mysqled1ch20.html)。 Postgres支持CTE,这使得这更容易。 – Dinesh 2014-12-02 00:39:34
不确定您对“Reply_To”的阅读。如果仍然要收集数据,为什么不使用[SQL Fiddle](http://sqlfiddle.com/#!15/063f4/1/0)中的“Thread”列。由于没有关于应用程序上下文的更多上下文,这似乎使生活变得更容易。 – Abecee 2014-12-02 00:56:47
对不起@Abecee总是很棘手,以决定包含多少信息,而不过分冗长 - 在这种情况下,我无法控制数据结构 - 我坚持给我的字段 – PerryW 2014-12-02 00:59:55