交换数据库中两条记录的排列顺序

在实现列表数据上移和下移功能时,遇到由于原始代码导致的排序问题,表现为index字段重复,影响功能正常运作。通过改进代码,将原本的上移和下移接口合并为一个交换接口,接收两个ID进行交换,但该方案仍存在多次数据库查询和更新。为提高效率,最终采用SQL语句直接交换两条记录的index,解决了重复index和性能问题。
摘要由CSDN通过智能技术生成

背景需求:最近做列表数据上移和下移功能,数据库有个index字段用来存储当前对象的排列序号;

第一版代码是同事写的,上移和下移功能分成两个接口,上移的时候将index-1;下移的时候将index+1;

这个方式,真的是无力吐槽;

测试人员反馈的bug信息是,排序几次之后就失去了排序功能,点击上移和下移列表并没有什么变化,或者是会一下子跳几格;

好嘛,查看数据库,一堆index重复

第二版代码我将两个接口合并成了一个交换接口,实际上前端传递两个id,当前对象的id和需要交换对象的id给我就OK了,剩下的逻辑部分后端来实现;

业务层代码如下:

这段代码写好测试后就没再管,中规中矩的逻辑,但是中间查询了两次数据库更新了两次数据库,请求时间有点长,不过没有立即优化;下图是用postman测试接口时反馈的请求时间

过了几天,测试人员又提交了一次bug,说还是这个问题啊,我点击上移或者下移几次之后又

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值