2010-12-08 17 views
2

爲在線考試模塊創建一個優化的數據庫。在線考試的Mysql數據庫設計

我有兩個選擇:

  • 模式與即時通訊存儲同一行的問題,選項和答案。

    表:問題 山口:q_id,問題,OPT1,OPT2,OPT3,OPT4,opt5,ANS

  • 架構與具有用於每個操作3個不同的表D林。

    表:問題 上校:q_id,質疑

    表:選擇 上校:q_id,opt_id,選擇

    表回答 上校:q_id,ANS

+0

如果創建數據庫時,你是怎麼知道的它被優化? ;] – TBH 2010-12-08 11:32:40

回答

0

模式2是更符合你應該瞄準的方向。

0

可能有一個第三選項:

q_id | question | options | answer 

其中選項列是文本類型,並存儲的序列化陣列或JSON。

爲您提供的2種選擇:第二個同一個世界是選擇

0

我會用模式2,因爲它允許您添加答案任意數量的武器。

然而,您可以將table的答案納入options表中。

q_id | opt_id | option | correct 

以這種方式,您也可以有多個正確的答案每個問題。

0

如果您想在考試選項中保持靈活性,架構2將是更好的選擇。但是,如果您確定每次都可以設置固定數量的問題,則可以考慮將表格「問題」和「選項」合併到一個表格中,並讓每個用戶的答案各不相同。

0

如果有答案的固定數量的模式1會更好

,但如果這個問題可以有任意數量的答案,這將是更好的

question_id,question,answer_id_of_the_solution 

answer_id,question_id,answer