0

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

选项 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
4

1 回答 1

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
于 2013-03-18T23:33:10.397 回答