グリッドにデータを含む Web アプリがあります。ユーザーは列を並べ替えることができ、サーバーは存在する列を変更できます。ユーザーの列の順序を Cookie に保存し、ページの読み込み時に復元したいと考えています。
より正式には、 と と呼ばれる一意の ID (文字列) の 2 つの配列がuser_columns
ありserver_columns
ます。からのすべての注文情報を可能な限りserver_columns
尊重するように再注文したいと思います。どうすればいいですか?「可能な限り」の合理的な正式な定義は何ですか?user_columns
server_columns
これまでの私の分析:
問題の 1 つの側面は些細なことです。サーバーがいくつかの列を削除する場合は、対応するエントリを から削除しますuser_columns
。もはや存在しない列の順序に関する情報は意味がありません。問題は、競合する可能性のある 2 つの順序付け情報セットをマージすることになります。
これは、投票理論の一連の問題に対応します。それぞれが候補間の半順序を含む一連の投票が与えられると、ある意味で投票を反映する候補者の完全な順序が生成されます。
これにより、シュルツ法またはランク付けされたペアuser_columns
などを、およびに基づいて十分に不正に操作された投票セットに適用することで、実行可能な解決策が得られるのではないかと思いますserver_columns
。UX の理由から、新しい列を最後 (右側) に挿入して関係を断ち切ることは、私には良い考えのように思えます。
これは正しい軌道に乗っているように聞こえますか?
また、3 種類の比較を考慮することができることにも注意してくださいuser_columns
。前者と後者は簡単に解決できます (それぞれuser_columns
とを参照server_columns
)。真ん中にあるものと、後者との相互作用は、注意が必要な部分です。