【发布时间】:2012-08-25 17:36:36
【问题描述】:
我有一个存储在数据库中的项目列表。每个项目都有一个 id 列、一个标题和一个位置列 (int)。
默认情况下,每当用户将新项目添加到列表中时,其 id 都会放在该位置。因此,如果您有 3 个项目,ID 为 1、2、3,它们的位置也将是 1、2、3。
然后在获取位置时,我将在我的 SQL 查询中执行ORDER BY position ASC。
问题是,用户想要一个可以在现有项目中的任何位置添加新项目的功能。
因此,如果您有位置为 1、2、3 的项目 1、2、3,他可以选择在位置 2 添加一个新项目,这将导致项目 1、2、3、4 具有位置: 1 3 4 2
所以项目 #4 将被放置在位置 2,项目 #2 和 3 将被推到位置 3 和 4,等等。
完成此插入的最简单/最有效的算法是什么?
【问题讨论】:
标签: php mysql algorithm sorting