この質問に関して SO に関する多くの質問を見てきましたが、私のシナリオに関連するものはありません。私は、基本的な CRUD 操作を行うことを除けば、SQL の専門家にはほど遠い存在です。したがって、私はこれにかなりこだわっています。
私はテーブルを持っています。
myTable [rID, newsID, OrderPosition]
どこ;
rID is primaryKey int column,
newsID int is the ID of an item from another table and,
OrderPosition int to hold the position of the rows.
myTable には常に合計 10 行が含まれます。
したがって、最初に、myTable に次のデータがあると仮定します。
rID newsID OrderPosition
100 4000 1
101 4100 2
102 4200 3
103 4300 4
104 4400 5
105 4500 6
106 4600 7
107 4700 8
108 4800 9
109 4900 10
期待される機能は次のとおりです。
新規挿入
新しいアイテムを挿入するとき、ユーザーは好きな位置に挿入できる必要があります。今のところ、OrderPosition = 10 行を削除し、新しいレコード OrderPosition を 0 に割り当て、テーブルを並べ替えることで、新しいレコードを最初の位置に挿入することしかできませんでした。しかし、クライアントはアイテムをどの位置に配置するかを選択したいと考えています。その場合、 OrderPosition = 10 は再び削除されると思いますか?
消去
このテーブルからレコードが削除されると、常に合計 10 レコードになるため、別のテーブル [tblNews] から最後に入力されたレコードを取得し、10 番目の位置に挿入する必要があります (最後のレコードは tblNews から取得できます)。どのレコードが削除されるかわからないので、レコードが削除された後にテーブルを並べ替える方法がわかりません。
記事へのヘルプ、コード、方向性は非常に高く評価されます。
===========編集====================
回答に記載されている UPDATE メソッドは、私にとっては機能しません。たとえば、ユーザーは新しいレコードを 5 番目の位置に挿入したいと考えています。これは、注文位置 10 が削除され、注文位置 5、6、7、8、および 9 の現在のレコードが 1 つインクリメントされることを意味します。