在我的应用程序中,用户可以按照任意顺序重新排列他们喜欢的书籍。
在我的数据库中有一个名为“books”的表格,每本书都有一行数据。目前,有一个整数列名为“position”,它存储每本书的位置:第一本书为1,接下来的依次类推。
问题在于,如果有人将一本书从第11000个位置拖到第1个位置,那么我就必须对数据库进行11000次更新。这似乎效率不高。有没有更好的方法来处理这个问题?
我想过一个想法,就是只需创建另一个名为“book_sort_orderings”之类的表格,并为每个用户创建一行数据。其中一列将是一个巨大的文本列,存储书籍id的排序列表。然后,当用户重新排列书籍时,我可以将这个值提取出来到我的代码中,在那里执行重新排列并更新数据库行。当然,每次添加或删除书籍时,我也必须更新此数组。这是正确的做法吗?或者有没有聪明的方法可以在不改变当前设置的情况下加快速度?
在我的数据库中有一个名为“books”的表格,每本书都有一行数据。目前,有一个整数列名为“position”,它存储每本书的位置:第一本书为1,接下来的依次类推。
问题在于,如果有人将一本书从第11000个位置拖到第1个位置,那么我就必须对数据库进行11000次更新。这似乎效率不高。有没有更好的方法来处理这个问题?
我想过一个想法,就是只需创建另一个名为“book_sort_orderings”之类的表格,并为每个用户创建一行数据。其中一列将是一个巨大的文本列,存储书籍id的排序列表。然后,当用户重新排列书籍时,我可以将这个值提取出来到我的代码中,在那里执行重新排列并更新数据库行。当然,每次添加或删除书籍时,我也必须更新此数组。这是正确的做法吗?或者有没有聪明的方法可以在不改变当前设置的情况下加快速度?