1


問題は実際には最も可能性が高いです。私はGoogle(またはstackoverflow)に正しい質問をしていませんが、この単純なことが私を夢中にさせているからです。長い投稿で申し訳ありませんが、状況を明確にしたいと思います。

レコード ID、person_name、priority の mysql テーブルがあります

ID と person_name は一目瞭然です。優先順位は、レコードを降順で並べ替えるために使用されます。最高 = 最高の優先順位です。

簡単にするために、次のレコードがあります。IDは並べ替え順序に対応しています。

1, "John A", 3
2, "John B", 2
3, "John C", 1
4, "John D", 0

他のマシンからのエクスポートからレコードをインポートするまで、これは正常に機能しました。突然、同じ優先度の 2 つのレコードが存在します。

1, "John A", 3
2, "John B", 2
3, "John C", 1
5, "John E", 1
4, "John D", 0

レコードが優先度 DESC、名前 ASC で並べ替えられると、ID3 と ID5 はアルファベット順に並べ替えられますが、これは状況に対応していません。ユーザーが ID5 の優先度を ID2 よりも高くしたい場合、ID2 と一致し、ID5 はアルファ順により ID2 の下に表示されるため、優先度を増やすことはできません。

質問:これよりも効果的にこれを行う方法はありますか、それともまったく異なるアプローチですか?

  1. NEAREST_PRIORITY = 優先度の高い最も近いレコードの優先度を決定
  2. 優先度 > NEAREST_PRIORITY のすべてのレコードの優先度を 1 ずつ上げます
  3. 現在のレコードの優先度を設定 = NEAREST_PRIORITY+1

NEAREST_PRIORITY を持つ複数のレコードがある場合、これは実際にはうまく機能しません...

長い投稿とアイデアを読んでくれてありがとう。

4

1 に答える 1