php – 基于MySQL的网络应用程序:用户选择订单或项目的最简单方法?

我正在开发用户可以重新排列项目的东西,稍后,这些项目需要按所选顺序显示.举个简单的例子,考虑一个项目列表:

A,B,C,D,E,F,G.
MySQL表格很简单:user_id,letter,sortnumber

允许用户以增量步骤更改顺序.他们可能会将A移到D,G之后开始等.除此之外,他们还可以添加和删除项目.因此,他们可能会删除C或添加X.在每个步骤中,我都会将数据发送给PHP,PHP将处理它,并在MySQL中设置项目.

我看到有两种方式:

>每次添加/删除/重新排序
什么,发送整个列表
PHP,删除他们的所有数据
以前在那里,只是
插入新列表.问题是,
这是很多
每次删除/插入
做任何事情.他们可能会将A移到B之后,然后突然我删除7条记录,然后再插入7条记录.从好的方面来说,这很简单.
>他们所做的每一次“移动”(例如添加,删除或重新排序)都会发送信息.例如.他们在F之后移动了An,然后告诉我“在F之后移动”我现在必须检查列表中是否存在A和F,然后我必须减少A和F之间的所有“sortnumber”(包括F).如果他们说“删除Z”我必须在列表中找到它,删除它,并减少它后面的所有记录数.

所以我只是好奇……有没有人必须处理订单重要的事情,如果是的话,你是怎么做到的?

最佳答案 将Sequence列添加到表中 – 作为浮点数.

在Row-A和Row-B之间移动项目时,将其序列号设置为相邻列的平均值

索引序列列:)

点赞