私は 3 つのテーブル - ユーザー - 投稿 - アクティビティ (ユーザーの投稿の好き嫌いの情報を含む) を持っています。
私のビジネス要件は、人々が好き嫌いに基づいて相互にフォローするよう提案することです。
ユーザーの好き嫌いに基づいて相互スコアが計算されるプロセスを作成しました。
例: ユーザー AA は id 100 の投稿が好きで、この投稿も好きな他のユーザー (たとえば 50 ユーザー) よりも、50 人のユーザーすべてに対してユーザー AA のスコアを計算します。数百以上になる可能性があります) スコアのように、ユーザー AA が最も高い相互スコアを持つユーザーをユーザー AA に提案します。
私の問題は、各ユーザーの計算を他のユーザーに対して (毎回最初からプロセスを開始する必要がないように) フラットなテーブルに格納すると、テーブルが巨大になることです。ユーザーの相互スコアのこのデータを保存するための最良のデータベーステーブル構造を提案してください
ありがとう