【发布时间】:2015-07-29 16:47:22
【问题描述】:
用户应该能够以类似 Excel 的方式更改行顺序。现在行按id 排序。所以我添加了另一列order。
示例
1) Row A
2) Row B
3) Row C
4) Row D
现在Row A 应该在Row B 之后。
2) Row B
X) Row A
3) Row C
4) Row D
我需要计算新订单。因此我需要更新所有行!我不喜欢那样。
想法
我可以使用10 的十进制间隔来代替1。
10.00) Row A
20.00) Row B
30.00) Row C
40.00) Row D
然后我可以这样计算新订单:neworder = before + (after - before) / 2
Row A 在Row B 之后
20.00) Row B
25.00) Row A
30.00) Row C
40.00) Row D
... 和Row C 之后的Row B
20.00) Row B
22.50) Row C
25.00) Row A
40.00) Row D
...和Row D 之后的Row C
20.00) Row B
22.50) Row C
23.75) Row D
25.00) Row A
有没有更好的方法来处理这类问题?
编辑 @Adam 建议使用单链线性列表。它会完成这项工作。但是排序和性能呢?
【问题讨论】:
标签: postgresql linked-list sql-order-by