http://gridster.net/から派生したグリッドがあります。
- グリッドの列は、異なるタイプのエンティティとして表示されます。
- 行は優先度として認識されます。
各セルはこのようなオブジェクトです
実在物
- ID
- 名前
- 優先順位
- TypeId
注: Priority と TypeId はどちらも Int であり、実際には、このグリッドを生成するときのグリッド/列の場所に関連しています。
私の問題: セルが移動するたびに、そのセルの TypeId と Priority を更新し、移動した可能性のある他のセルを検出する必要があります。
通常、これは優先度 + 1 以下のすべてのセルを一括更新することを意味します (下に移動したため)。
この解決策は明らかに機能しますが、この設計と、実際にはデータベース内の別のテーブルを切り離して、優先度を追跡する役割を果たしたいと考えています。(グリッド ID に強く関連付ける必要はありませんが、優先度による並べ替えのようなことができるはずです) 順序/優先度を担当する他のテーブルと一緒に。特に、別のグリッドがあり、いくつかのエンティティのみを表示する場合。
Linked list のアプローチがいいのではないかと思いました。上と下を追跡している場所 (前と次) ですが、クエリを実行するのは非常に困難です。
何か案は?