0

我正在寻找一种解决方案来在两个帖子之间添加一个帖子并将新订单保存在数据库中。

我添加了对常规帖子的订单支持,我计划使用此字段对页面中的帖子进行排序。新帖子是通过 AJAX 从同一页面创建的。所有帖子都有相同的父级。

所以我有:

  1. 邮政A
  2. 邮政B
  3. 邮政C

现在我想在 PostA 和 PostB 之间创建一个新帖子 (PostD)。所以新订单将是

  1. 邮政A
  2. 邮政署
  3. 邮政B
  4. 邮政C

因此,必须为帖子 B 和 C 更新订单号,并且在保存新的 PostD 时为 PostD 分配订单号 2。

我想知道,什么是最好的解决方案。也许我可以做一个 SQL 查询来做这样的事情:

获取所有具有帖子父 XX 且订单号 >= 新帖子号的帖子,并将 +1 添加到这些帖子的订单号。

任何帮助将不胜感激,谢谢!

4

2 回答 2

0

使用 10000 步。

算法:

  • 如果最后一个后新帖子 -订单号设置为最后一个数字+ 10000
  • 否则获得帖子前后算术平均订单
  • 如果帖子之间没有空闲号码 - 运行完整的重新编号帖子分支。在它插入新行之后。

重新编号查询:

update posts
   set number=(select @i:=@i+10000)
 where (select @i:=1)=1 and (condition_for_select_posts_branch)
 order by number
于 2016-08-25T14:10:57.853 回答
-1

始终使用 10 步,因此您有空间容纳 9 个额外的帖子。

于 2016-08-25T13:42:46.513 回答