我正在开发一个Web应用程序,它将在滑块中显示图像.重要的是,我能够修改它们的显示顺序.
当前,我在图像表中有一列称为“ order”,必须设置该列以确保顺序正确运行,但是更改它还需要进行其他更改,这在处理数百条记录时变得很棘手.
该表以及用于对其进行修改的查询正在开发中,因此完全可以更改我的操作方式.
我的问题是:
>当我插入新行时,如何确保它出现在列表的末尾?如果您从表中删除条目,则sql中的自动增量趋向于留下空白.如何确保为行分配的顺序比表中的最高顺序大1?
>如何重新排序桌子?想象一下,我使用拖放界面(或类似界面)对一张图像进行重新排序,将其置于列表顶部或列表的其他部分.如果这样做,我需要重置每个项目的编号,这在处理几百行时效率很低.
>如何防止两行在任何给定时间具有相同顺序?列上的UNIQUE标志?大概如果我设置了该标志,则将一行中的顺序从例如8更改为另一个会使用该数字.对?
谢谢您的宝贵时间,我希望这不是一个容易理解的问题!
解决方法:
>将在列表的末尾.只需使用自动递增功能,而无需手动设置ID(例如lastID 1),就永远不会描述问题.
>您可以允许用户更改列表的顺序,然后仅更新所有订单单元(针对列表的每个成员).或者,您可以在每次用户拖放时使用Ajax并为两个成员交换订单值.
>使用2中描述的方法之一,您将永远不会遇到这个问题.