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

当前,我在图像表中有一列称为“order”,必须设置该列以确保顺序正确运行,但是更改它还需要进行其他更改,这在处理数百条记录时变得很棘手。

该表以及用于对其进行修改的查询正在开发中,因此完全可以更改我的操作方式。

我的问题是:

  • 当我插入新行时,如何确保它出现在列表的末尾?如果您从表中删除条目,则SQL中的自动增量往往会留下空白。如何确保为行分配的顺序比表中的最高顺序大1?
  • 如何重新排序表格?想象一下,我使用拖放界面(或类似界面)对一张图像进行重新排序,将其置于列表顶部或列表的其他部分。如果这样做,我需要重置每个项目的编号,这同样在处理数百行时效率低下。
  • 如何在任何给定时间防止两行具有相同的顺序?列上的UNIQUE标志?大概是如果我设置了该标志,则将一行中的顺序从例如8更改为另一行将使用该数字。对?

  • 谢谢您的宝贵时间,我希望这不是一个容易理解的问题!

    最佳答案

  • 将在列表的末尾。只需使用auto increment功能,而无需手动设置ID(例如lastID + 1),就永远不会描述问题。
  • 您可以允许用户更改列表的顺序,然后仅更新所有order单元(针对列表的每个成员)。或者,您可以使用Ajax并在每次用户拖放时交换两个成员的order值。
  • 使用2中描述的方法之一,您将永远不会遇到这个问题。
  • 09-25 18:30
    查看更多