私の要件では、Web サイトのすべてのユーザーは、他のユーザーに添付されたスコアを見ることができます。プロファイル パラメータに基づいて計算されます。他の誰かに対する私のスコアは 1 ですが、私に対する彼らのスコアは別のスコアになります。
これまでに行ったこと MySQL データベースのテーブルは次のようになります。
___UserID1___|___UserID2___|___Score___|___Last_Uopdated___ 1 | 2 | 45 | 1235686744 2 | 1 | 24 | 1235645332
ユーザーが誰かのページを表示すると、私のスコアクラスは、このペアのレコードがデータベースに存在するかどうかを確認し、存在しない場合は計算して記録します。サイトのすべてのユーザー ページを絶対に見る人はいないため、これは問題なく機能します。
ここで、ユーザーをプルして、スコアに基づいて並べ替える必要があります。だから私は、cronjobを作成して毎晩実行できると思ったので、データベースのスコアを更新し、ユーザーのすべてのペアに対して両方の方法でスコアを作成します.
問題は、500,000 人を超えるユーザー向けのシステムを計画していて、データベースがダウンして巨大なデータベースが作成されるのではないかと心配していることです。したがって、500,000 の場合、2,500 億のレコードについて話していることになります... :/
この機能を作成する他の方法を知っている人はいますか? その場での計算かもしれません...または他の方法ですか?