我有一个包含以下数据的表:
id position name
== ======== =========
1 4 Fred
2 2 Wilma
3 1 Pebbles
4 5 Barney
5 3 Betty
这是一个用户可以重新排列的列表(因此是位置列)。我的问题是,我怎样才能以一种平静的方式做到这一点。例如,如果我想将 Fred 移动到位置 2,我将如何发送请求?
目前,我有这样的事情:
PUT /user/1/reorder/2
这会将当前位于位置 4 的用户 1 (Fred) 移动到位置 2。SQL 代码还将运行一个查询,该查询将更改其他用户的位置以适应 Fred 的新位置。
执行此操作的正确 RESTful 方法是什么?
为了有效地做到这一点,请使用哈希表,并且永远不要重新排序所有内容,只需通过更改索引键将它们放在中间即可。我是什么意思?
Lets say
1 a
2 b
3 c
4 d
5 e
PUT /user/1/reorder/2
在里面我会这样做,该位置也源自索引中的位置
1 2 b
2 2.5 a
3 3 c
4 4 d
5 5 e
正如 Kajow 所指出的,这种方法有两个问题:
解决它们:
我们不使用浮点数,而是使用大数字 100000,200000,300000 等,并重新排序,200000,250000,30000 等。
x 次重新订购后,我们重置为 100000,200000,300000,400000。可能有一种方法只对每个 x 个部门的小部件进行重新排序,以保持此过程简单、小且零星
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)