用户应该能够以类似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建议单链接的线性列表。它会完成这项工作。但是如何订购以及性能呢?
答案 0 :(得分:0)
如果您将“订单”列更改为“上一列”记录,则每次重新排序只需要进行两次行编辑。要使用你的上一个例子:(我给第一行标记值'NULL'。)
B行后的A行
NULL) Row B
B) Row A
A) Row C
C) Row D
...和行B之后的行C(将行A更改为C,行C更改为B)
NULL) Row B
B) Row C
C) Row A
A) Row D
...和行C之后的行D(将行D更改为C和行A到D)
NULL) Row B
B) Row C
C) Row D
D) Row A