1

デザインの問題で立ち往生しています。テーブル内のユーザーレコードにランクを割り当てたい。彼らはサイトで何らかの行動を起こし、リーダーボードに基づいてランクを付けます。そして、私が彼らに望む選択は、トップ10、ユーザーの位置、今日ログインしたトップ10などである可能性があります。

Azureテーブルに保存する方法が見つかりません。カスタムコレクションオブジェクト(ソートされたリスト)をblobに格納することを考えたよりも。

助言がありますか?

4

1 に答える 1

1

テーブルエンティティは、PartitionKey、RowKeyで並べ替えられます。ユーザーを継続的に削除して再作成し(したがって、PK、RKを変更できるようにする)、正しい順序を指定することはできますが、それは悪い考えか、少なくともやり過ぎのようです。代わりに、ランキングの計算に使用するデータを保存し、定期的にランキングを計算して保存します(あなたが言うように)。これは私たちの仕事で多くのことを行います-データがJSONビューでどのように表示されるかを事前に計算し、それをBLOBに格納し、UIに直接クエリを実行させます。秘訣は、ビューをいつ再計算するかを決定することです。ユーザーがランキングを再計算する項目を実行した後、私はおそらくメッセージをキューに入れ、ワーカープロセスを終了させて​​ビューを再計算します。これにより、あまりにも多くのワーカーが一度にデータを更新しようとするのを防ぎます。

于 2011-10-03T13:20:21.940 に答える