4

クイズ アプリのデータベース設計に少しこだわっています。これについて親切に案内してください -

私のアプリのUIは次のようになります-

画像

マイDBテーブル -

ユーザー-

user_id
user_name
user_email
user_password
user_registration_date
user_active

質問-

question_id
question_title
question_category_id
question_level_id
question_author_id
question_status
question_create_date

カテゴリ-

cat_id
cat_name
cat_author
cat_create-date
cat_status

レベル-

level_id
level_name

答え-

?????????

クエリ-

私は答えの表で立ち往生しています..これは、これを使用して答えの表にどの列を設定すればよいかわかりませんdata type

私の答えは、オプション形式でのみ1、2、3、4オプション、またはオプションなしのテキストタイプの回答でtrue falseになります..単なる選択肢の選択です。

私はこれで立ち往生しているので、親切に私を導いてください。

上記の表にも何か問題があるかどうかを示してください。また、レベル用に別の表を作成することがOK悪いかどうかをお知らせください (レベルは初級、中級、上級のみになります)。

4

2 に答える 2

7

過去にこれを行ったとき、次のように回答を処理しました。

表: QuestionAnswers
フィールド: ID、QuestionID、AnswerText (文字列)、AnswerCorrect (bool)

表: QuestionAnswerResponses
フィールド: ID、QuestionAnswerID (上記の ID テーブルにリンク)、Userid、AnswerSelected (bool)、TimeAnswered (datetimr)。

于 2013-03-09T16:17:57.750 に答える
1

まず、テーブルに含まれるすべてのフィールドでテーブルの名前を繰り返すのは冗長です。だから私はそれをしないことをお勧めします。唯一の例外は主キー/自動インクリメント フィールドです。これは、2 つのテーブルの両方に ID フィールドがある場合に myTable.id を入力する必要があるため、混乱したり余分な作業が必要になる場合があるためです。myTable.id が myTable_id よりも多くの作業を行う理由はわかりませんが、それはわかりました。

私が過去に使っていたのは、

table Distractor (質問に対して利用可能な回答を eLearning の種類で呼ぶもの)
id
question_id (質問テーブルへの外部キー)
text (その回答の画面に表示するテキスト)
isCorrect
displayOrder

回答を再利用する柔軟性が必要な場合は、distractors テーブルに質問 ID を含める代わりに、ジャンクション テーブルを使用することをお勧めします。ただし、質問の作成日を突き止めたいので、回答を厳密に 1 つの質問に限定したい場合があります。

于 2013-03-09T16:21:09.893 に答える