正在数据库中存储 post 显示顺序

Storing post display order in database

我正在开发一个 Web 应用程序,它将在滑块中显示图像。重要的是我能够修改它们的显示顺序。

目前,我在图像的 table 中有一列名为 'order',必须对其进行设置以确保排序正确,但更改它也需要每隔一个更改,这就变成了处理数百条记录时很棘手。

此 table 以及修改它的查询正在开发中,因此完全可以改变我执行此操作的方式。

我的问题是:

感谢您抽出宝贵的时间,我希望这个问题不会太模糊而不易回答!

  1. 它将在列表的末尾。只需使用 auto increment 功能,不要手动设置 ID(如 lastID + 1),您将永远不会遇到描述的问题。

  2. 您可以允许用户更改列表的顺序,然后只更新所有 order 单元格(对于列表的每个成员)。或者您可以使用 Ajax 并在每次用户拖放时为两个成员交换 order 值。

  3. 使用 2 中描述的方法之一,您将永远不会遇到此问题。

  1. 查询您要插入的 table 以查找 table 中的 MAX id。然后在您的插入中执行此 +1.

  2. 重新排序时,假设您要将图像顺序 6 设置为顺序 3。您将要更新从顺序 3 开始的所有行到顺序 +1,然后将图像设置为顺序 3 .

UPDATE table SET id = id+1 WHERE id IN (SELECT * FROM table where id >= 3)

  1. 如果您在订单列上使用 unique 重新排序,则必须将当前值更新为临时值,例如 99999,然后使用方法 2。但是方法 2 应保留此 table 从接收任何重复的值。

旁注

您可以在删除图片时重新评估 id 以保持无间隙

UPDATE table SET id = id-1 WHERE id IN (SELECT * from TABLE WHERE id > 3)

其中3是删除的id