3

私は現在、本質的にクイズアプリケーションを作成しているプロジェクトに取り組んでいます。10 ~ 20 問の多肢選択式または短答式のクイズに答えることができます。ユーザーの回答を正しい回答と照合し、ユーザーの回答のスコアを保持する機能が必要です。

後で、クイズをすべてオンラインで作成するためのバックエンド機能を実装するかもしれませんが、今のところ、データベースを直接操作することはやめておきます。

さて、私の質問です..すべての機能を使用できるようにデータベースとテーブルを設計する方法について、かなり迷っています。これが私が現在設定している方法です:

クイズ表

  • 名前列
  • ID行

質問表

  • ID行
  • 対応するクイズ ID 行
  • 実際の質問テキスト行

回答表

  • 対応するクイズ ID 行
  • 対応する質問 ID 行
  • 実際の回答テキスト行
  • if_correct_answer 行

したがって、各クイズには独自の ID があり、各質問には独自の ID とその親クイズ ID があり、回答には親クイズ ID と親質問 ID があります。

現時点では、「正解」の問題は次のように機能しています。正解を選択すると、if_correct_answer 行の値が 0 よりも大きくなり、最後にすべての回答の値が加算され、それは彼らが正解した数です。

これはデータベースを設計する良い方法ですか? ここの別の投稿で基本的な考え方を見ましたが、それを完全に理解しているか、正しく使用しているかはわかりません。私は基本的に、すべての異なる ID を調整する方法について混乱してしまいます。(私は mySQL と PHP の初心者ですが、おそらく役に立たないでしょう)

4

2 に答える 2

2

あなたのテーブル構造は私には良さそうです。ユーザーの回答を保存する別のテーブルも必要です。

ユーザーの回答表- 大まかな構造

  • ID
  • ユーザーID
  • quiz_id
  • question_id
  • answer_id
  • 回答日

また、name、user_id、phone などのユーザーの基本情報を格納するために、さらに別のテーブルが必要です。

于 2012-08-24T05:08:20.813 に答える
0

アイデアとして、質問とクイズのリンク テーブルを作成し、新しいクイズの作成に使用できる質問のコレクションを作成できます。大まかな概要:

クイズ表

  • 名前列
  • ID行

クイズテーブルへの質問

  • クイズID
  • 質問ID

質問表

  • ID行
  • 実際の質問テキスト行

回答表

  • ID行
  • 対応する質問 ID 行
  • 実際の回答テキスト行

ユーザーの回答表 - 大まかな構造

  • ID
  • ユーザーID
  • quiz_id
  • question_id
  • answer_id
  • 回答日
  • if_correct_answer 行
于 2012-08-24T10:03:18.813 に答える