2012-02-07 4 views
0

これは、「どうすればコードするのですか」という質問をコーディングするものではありません.SOが正しい場所であるかどうかわかりません。そうです。多数のユーザーに「ランダム」な質問を表示する

75の質問があるオンラインテストを想像してみてください。テストを受けた各人は、5つの「ランダム」な質問を見ます(しかし、あなたが見るように、ランダムではありません)。

私はこれらの質問をどのように見ても同じように見えるようにする方法を知っておく必要があります(750人が試験に合格した後、すべての質問が10回見られました)。

どの質問のヒット数が最も低いかを確認して、それを表示するスクリプトを作成するのが最善でしょうか?または、各ユーザーが見るための質問のプリセットリストを設定するには?

このスクリプトは、MySQLバックエンドを使用してPHPで記述されますが、重要ではないと思います。

答えて

0

あなたが本当にすべての75個の質問をしたい場合は一様に、私はこのような何か思いに表示さ:すべての質問がされるまで二度同じ質問をしますが、ユーザーごとにランダムな質問を受けるこのように

1. Create a table with a random list of all questions (ids to the questions). 
2. When a questions is requested, get the first id from the table and remove it. 
3. If the table is empty then create a new list and get the first. 
4. Etc. 

をしていません表示されます。

また、各ユーザーが既にどの質問を取得しているかを把握する必要があります。これを別のテーブルに記録し、ヒットがある場合は、そのヒットをスキップして、代わりに次のヒットを取得して削除します。

+0

"uniform"は私が探していた単語です=]この解決法は機能しますが、データベースの負荷が少し重くなる可能性があります。特にリストを再作成する場合は特にそうです。 –

+0

75レコードしかない場合、データベースに大きな影響はありません。 –

関連する問題