【问题标题】:Optimal database insert query for element position元素位置的最佳数据库插入查询
【发布时间】:2013-11-06 15:35:17
【问题描述】:

我有一组可以拖放的元素(大约在 50-250 之间)。现在,一旦拖放完成,我想保存元素的新位置。不是什么大问题,但我还需要更新现在在拖动元素之前的所有元素的位置。(给它们一个 -1 位置)。当移动在前几个元素之间时,这很简单,但是当它接近尾声时,我不想发出 200 个请求,或者必须做一个foreach 并编写一个过长的 SQL 语句

我想知道执行 SQL 请求的最佳方法是什么。

我正在使用 Laravel 4 和 Eloquent。

谢谢

【问题讨论】:

  • Element::whereIn('id', array(1, 2, 3))->decrements('position'); 呢?
  • 我会马上尝试,如果好病要求你发布它作为我可以投票给你的答案
  • 对不起,雄辩的没有whereIn。正在寻找替代品
  • 其实有。 All methods available on the query builder are also available when querying Eloquent models.,来自 Laravel 文档。

标签: php mysql database laravel laravel-4


【解决方案1】:

拖放元素,所以我想您需要存储元素的 x 和 y 等双向坐标。 所以你可能需要一个四叉树而不是使用数据库

http://en.wikipedia.org/wiki/Quadtree http://www.codeproject.com/Articles/30535/A-Simple-QuadTree-Implementation-in-C

【讨论】:

  • 这看起来更像是顺序,而不是 X 和 Y 坐标。
  • 是的,它只是顺序的,从位置 1 到 n
猜你喜欢
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 1970-01-01
相关资源
最近更新 更多