2014-12-04 53 views
0

我想開發一個應用程序,其中事件/問題將由管理員發佈,用戶將投票或回答。這裏的問題可以有三種不同的類型和每種類型可以有不同的option.Admin可以查看每個問題報告 E.g什麼應該是在線投票應用程序的數據庫模式

  • WHQuestion:什麼是婚姻適齡? (1)> 20(2)= 20(3)20 <
  • 投票:誰是最好的隊長(1)ABC(2)PQRÑ等......
  • YesNoQuestion:是縱帆船的好隊長? (1)是(2)否

所以我對這裏的數據庫模式和表格感到困惑。我應該如何管理它們?

回答

1

所有的問題都是一個或零個正確答案的多項選擇。所以:一個問題,一些答案,一個可選的正確答案。

  • 問題question_no,文字
  • question_no,answer_no,文字

至於如何存儲這些回答每個問題是正確的,有兩個選項:

  1. 將answer_no存儲在問題記錄中。我認爲這是更好的選擇。以延遲約束爲特徵的dbms(所以問題記錄可以引用答案記錄,反之亦然)在這裏將是一件好事。如果沒有正確答案,則answer_no爲空。
  2. 在答案表中標記一個標記,然後將每個問題的答案標記爲正確,其他答案不正確。如果每個問題有多個正確答案,這將是適當的。但是,對於一個正確的答案,這將是兩者中最糟糕的選擇。爲了保證數據的一致性,你可以應用一些特殊的檢查,這可能有點複雜(例如一個保證唯一性的函數索引)。對於沒有正確的答案,您可以存儲相同的值,甚至爲所有答案都爲空。但是,您必須看到答案才能發現這是一個投票問題。同樣,選項1是在問題記錄中立即看到的更好的選擇。
相關問題