假设PHP/MYSQL,但我不一定需要实际的代码,我只是对它背后的理论感兴趣.
一个很好的用例是Facebook的照片库页面.您可以在页面上拖放照片,这会触发Ajax事件以保存新的排序顺序.我正在实现非常相似的东西.
例如,我有一个数据库表"照片",大约有一百万条记录:
photos id:int,userid:int,albumid:int,sortorder:int,filename:varchar,title:varchar
假设我有一张包含100张照片的相册.我将照片拖放到一个新位置,然后激活Ajax事件以保存在服务器上.
我应该将整个照片ID数组传递回服务器并更新每条记录吗?假设输入验证为" WHERE userid= loggedin_id",因此恶意用户只能混淆自己照片的排序顺序
我是否应该传递照片ID,其先前的排序顺序索引及其新的排序顺序索引,检索这两个索引之间的所有记录,对它们进行排序,然后更新它们的订单?
如果单个图库中有数千张照片并且排序顺序发生了变化,会发生什么?
我有一个应用程序,其中包含任务,您可以重新排序它们.现在我想知道如何最好地存储它们.我是否应该为ordernumber设置colomn并在每次更改时重新计算所有这些?请告诉我一个不需要我更新所有订单号的版本,因为这非常耗时(从执行的角度来看).
如果我必须将一个位于订单顶部然后将其拖到底部,那么这尤其糟糕.
-
-
*必须在数据库中进行更改
一些任务也可能因为完成而被删除