2015-05-27 111 views
0

我正在創建一個桌面應用程序,通過詢問多項選擇題來測試用戶對特定主題的知識。每個問題都包含獨特的問題編號,問題,四個選項,正確答案,主題和難度。我有一個這樣的問題的數據庫。對於每個用戶,我想跟蹤他所嘗試的問題,以便我可以爲他提供他的進度分析,並提供更好質量的問題。我如何爲每個用戶存儲所需的數據?哪種數據類型用於存儲用戶數據?

我已經有一個數據庫的用戶的詳細信息和MySQL中的問題之一。

+1

您需要多個具有外鍵的表。 – SLaks

+0

http://en.wikipedia.org/wiki/Foreign_key – SLaks

回答

2

你應該有三個表:

  • 用戶
  • 問題
  • 成績

的用戶表將有一個主鍵例如, PRIMARY KEY(用戶ID)

問題表也將有一個主鍵。 最後,分數表將有一個主鍵和兩個外鍵引用用戶和問題表,例如。

PRIMARY KEY(scoreID)

外鍵(用戶ID)參考文獻用戶(用戶ID),

外鍵(questionID)參考文獻問題(questionID)

爲得分表的主鍵不能是兩個外鍵的組合,因爲用戶對於每個問題可能有許多不同的分數。主鍵必須是唯一的。當然,分數表將有一個分數屬性(列)來存儲每次的分數。

至於要使用哪種數據類型,您只需要主鍵和分數的int數據類型,除非您想爲分數使用更精確的類型(如float)。我建議你使用varchar來處理用戶名等內容。

相關問題