Mysql

分層測驗的數據庫結構?

  • June 25, 2015

我正在做一個個人項目,我有一個帶有許多布爾問題的測驗。每個問題將有兩個答案選擇“真”和“假”。根據選擇的答案,將使用類似的模式提出一個新問題,並在此基礎上提出另一個問題。任何問題都可能有任何數量的子問題或沒有子問題。

樹中的最後一個問題(E、D)和沒有子問題的問題(F)也將儲存“真”或“假”的正確答案。

字母 A、B、C、D、E、F 是問題。測驗可以有任意數量的主問題(如 A)、子問題(如 B、C、D、E)和個別問題(如 F)。

請幫我為這種測驗設計一個簡單的數據庫模式。我對關係(mysql)和文件(mongodb)數據庫都開放。

概念圖

在關係數據庫中,您應該創建一個名為 Questions 的表,其中應包含以下欄位:

  1. ID
  2. QuestionString
  3. QuestionType(大師,個人,子問題)
  4. TrueCase(這裡你應該儲存下一個問題的ID。由於我們會將所有問題儲存在此表中,因此每個問題都有唯一的ID)
  5. FalseCase(詢問答案是否正確的問題ID。如果ID為空,則應退出)

希望能幫助到你。

* User
 - user_id    auto integer
 - regtime    datetime
 - username   varchar
 - useremail  varchar
 - userpass   varchar
* Question
 - question_id   auto integer
 - question      varchar
 - is_active     enum(0,1)
* Question_choices
 - choice_id        auto integer
 - question_id      integer
 - is_right_choice  enum(0,1)
 - choice           varchar
* User_question_answer
 - user_id      integer
 - question_id  integer
 - choice_id    integer
 - is_right     enum(0,1)
 - answer_time  datetime

引用自:https://dba.stackexchange.com/questions/89266