2016-12-09 4 views
0

私のテーブルには、このような順番の列があります。最も安い方法レールで

id | order 
---------- 
1 | 100 
3 | 200 
2 | 300 

ユーザに、ユーザがある項目を挿入することができるはず アイテムを再注文することができます任意の順序。例えば

id | order 
---------- 
1 | 100 
4 | 150 * new item 
3 | 200 
2 | 300 

最も効率的で「クリーン」な方法で注文列を設定するにはどうすればよいですか?先行者と後継者の間の順序(上記の例では150)を使用すると、順序値が小さすぎる場合にテーブルを並べ替える必要があるという欠点があります。

+0

結合テーブルの設計を検討してください。例:http://www.tomjewett.com/dbdesign/img/manymany-links.gif –

答えて

0

act as list gemを使用すると、並べ替えと並べ替えを解決できます。gem documentationを確認してください。

+0

ありがとうございます。本当に有望ですね。それがどのようにSQL効率が良いか知っていますか?あなたはアイテムの位置を変更しているときに多くのクエリを起動しますか? – Michael

+0

私は多くのアプリでそれを使用していました。 –

関連する問題