私はasp.net-mvc Webサイトを持っており、データのhtmlテーブルがあり、列の1つはその行の優先度を表すランキングです(各行はリクエストを表します)。ユーザーが新しい番号を使用して行のデータを編集できるようにしますが、実際には他の行には影響しません (たとえば、別の行に既に存在する値を入力することを妨げるものは何もありません)。
より効果的なフロントエンドと高速なバックエンドを持つソリューションを探しています。私はそれぞれを分解します:
- フロントエンド:
行を上下にドラッグ アンド ドロップするか、上下矢印をクリックするか、行にランキング値を入力すると、他のすべての行のランキングが更新される機能が必要です。1 位にランク付けされた新しいエントリがある場合、基本的にユーザーがすべての行を更新する必要はありません (基本的に、前の 1 => 2、前の 2 => 3、前の 3 => 4 などを更新する必要があります)。 . .
この機能をサポートするのに役立つjqueryライブラリまたは便利なパターンはありますか(すべてを最初から配線する必要がないようにするため)、これは他の多くの人が使用していると想像できる一般的な機能のようです。
参考までに、JIRA Greenhopper プランニング ボードに詳しい人がいる場合、これは模倣する例として理想的です。
- バックエンド
私の関連する質問は、バックエンドを更新するときに、これが非常に遅い操作になるのを回避する方法を見つけようとしているということです。私のデータベーステーブルにランクフィールドがあり、誰かがアイテムを更新してナンバーワンになる場合、基本的に他のすべての行で更新クエリを実行して、値を既存の値 + 1 に変更する必要があります。これを行うパターンはありますか?より効果的に?