データベースに保存されているアイテムのリストがあります。各アイテムには、id 列、タイトル、および位置列 (int) があります。
デフォルトでは、ユーザーが新しいアイテムをリストに追加するたびに、その ID がその位置に配置されます。したがって、ID が 1、2、3 の 3 つのアイテムがある場合、それらの位置も 1、2、3 になります。
次に、位置をフェッチするときにORDER BY position ASC
、SQL クエリ内で行います。
問題は、ユーザーが既存のアイテム内のどこにでも新しいアイテムを追加できる機能を望んでいることです。
したがって、アイテム 1、2、3 の位置が 1、2、3 の場合、彼は新しいアイテムを位置 2 に追加することを選択できます。これにより、アイテム 1、2、3、4 の位置が 1 3 になります。 4 2
したがって、アイテム # 4 は位置 2 に置かれ、アイテム # 2 と 3 は位置 3 と 4 に押し下げられます。
この挿入を達成するための最も簡単で効率的なアルゴリズムは何ですか?