可排序的项目MySQL结构

时间:2013-03-18 23:09:57

标签: php jquery mysql

我有一个文件表中的项目列表,哪种方式最实用根据用户定位记录对记录进行排序?每个用户可能有数百条记录。也许有更好的方法来做到这一点,我已经把我的想法加入了?

选项1 :我有一张包含订单的表格。我可以按顺序列轻松排序,但是当我添加新字段或在前端重新排序时,我可能需要更新许多记录,例如:如果有50个文件,则将file_id 1更改为位置50 ,可以重新编号每行的顺序,依次需要50次更新.. *

table: file
file_id | name  | order
------------------------
1       | test  | 2
2       | other | 1

选项2 :根据订单表整理文件表。这需要更多的工作和错误检查,而且有点困难。然而,我将使用CSV值更新一行并将它们转换为数组以对文件列进行排序。

table: file
file_id | name 
----------------------
1       | test
2       | other

table: order
file_order 
----------------------
2,1

1 个答案:

答案 0 :(得分:2)

选项1 您可以使用这些SQL请求:

我在您的user_id表格中添加了一个字段file

将第50个文件设为第3位:

UPDATE table SET order=3 WHERE id=50 AND user_id = xxx

UPDATE table SET order=order+1 WHERE id>3 AND id<50 AND user_id = xxx

将第3位置为第50位:

UPDATE table SET order=50 WHERE id=3 AND user_id = xxx

UPDATE table SET order=order-1 WHERE id>3 AND id<50 AND user_id = xxx