私は単純なリーダーボードシステムを持っています。2 つのクエリ (テーブル内のスコアの位置を取得するためのクエリと、テーブル内のスコアの位置を取得するためのクエリ) が必要な場合に、結果のページをユーザー スコアの中央に配置するにはどうすればよいですか? それらの間に新しいスコアが到着する可能性があります。テーブルをロックすることが唯一の方法ですか? それとも、ある種のアトミックメソッドがありますか? オフセット値にクエリを埋め込む場合、それはアトミックですか?
1 に答える
1
最も簡単な解決策の 1 つは、表示されているページ + 両側にいくつかの余分なページを取得することです。新しいレコードが入ってきた場合でも、ほとんどの場合、UI をアクティブ プレーヤーの中央に配置するのに十分なデータが必要です。
ただし、リーダーボードの上下など、プレーヤーを中央に配置するのに十分なデータがないことに対処する準備を常に整えておく必要があります。
ページにプレーヤーがまったく表示されない場合は、別のリクエストを行う必要があります。ただし、プレーヤーが短時間 (両方のクエリを完了するのに数秒) でページから押し出される可能性は非常に低いため、UI がハングしない限り、エクスペリエンスは問題ないはずです。
于 2013-03-09T15:36:56.867 に答える