0

私は現在、大規模なユーザー グループを持つ DB を持っており、特定の数に基づいてそれらすべてをペアにする方法を探しています。

ユーザーのデータベースをランダムに反復し、それらすべてを互いにペアにする最良の方法は何ですか? 誰も逃さないようにし、その時はすべてがランダム化されます。

誰もこれを経験したことがありますか?どんな助けでも大歓迎です。

4

1 に答える 1

0

これを行うにはおそらく多くの方法がありますが、データベースがランダムクエリを処理できる場合は、このようにすべてのユーザーを取得できます (RANDOM() は DB のランダム関数です)。

User.order('RANDOM()').in_groups_of(2) do |a,b|
  # code to match user a to user b
end

奇数のユーザーを処理する必要があり、上記は効率的ではありませんが、機能します。

于 2013-10-09T01:31:57.450 に答える