前端数组重新排序之后服务端如何保存。

问题描述

前端数据结构如下

let array = [
    {name:"香蕉",order:0},
    {name:"橘子",order:1},
    {name:"苹果",order:2},
    {name:"梨",order:3},
    {name:"葡萄",order:4}
]

根据元素的order来进行展示,展示结果如下:
香蕉 橘子 苹果 梨 葡萄

现在前端将香蕉放到梨和葡萄之间(将某个元素放到其他两个元素之间),展示结果变为:
橘子 苹果 梨 香蕉 葡萄

(前端非常好处理)服务端如何保存这一步操作?

我的想法(服务端操作)

将order<=3的元素的order-1,然后将香蕉的order变为3,
抽象出来就是:元素之前的index为x,之后的index为y,如果y>x,则x<m<=y的元素order-1。
如果y<x,则y<=m<x的元素的order+1。

请教

我这种做法是不是太暴力了,数据量大的时候感觉不妥,有没有更优雅的解决办法?

如果你存在大量的小块数据(每个数据内有关联、排序),而数据块之间没有联系,那么用nosql比用数据库更好。比如用mongodb