2015-10-19 72 views
0

我正在設計一個基於小組進度測驗的數據庫。測驗包含55個問題,理想情況下,一組10人將每隔幾周參加一次測驗,每個人都會爲小組中的每個人(包括他們自己)服用一次。因此,每次小組參加測驗時,都會將100條數據添加到數據庫中。具有小數據的大型MySQL數據庫

目前我儲存測驗答案表將具有以下行:

quiz_taker_id  // person taking the quiz 
quiz_subject_id // taker is answering questions about this person 
quiz_id   // identifies if this is the 1st time taking the quiz, 2nd time, etc 
question1   // answer to question 1 
question2   // answer to question 2 
...    // etc, for all quiz questions 

測驗答案是非常簡單,它只是一個人的特性的0-5口糧。這是存儲這些數據的好方法嗎?有沒有更好的方法來做到這一點?我剛剛開始建立網站和數據庫,所以我想確保我以正確的方式接近此方法

+1

你打算怎麼處理這些數據?你會針對它做什麼樣的查詢? –

+0

@ PM77-1提出了正確的問題 - 在大多數情況下,如果可能的話,根據您希望如何報告/查詢數據來設計數據庫模式會更好。許多人會說,「更好」的設計將是進一步規範你的數據,但根據你打算如何使用它以及你期望的應用程序的生命,它可能會也可能不值得。如果這是(例如)您計劃運行幾個月的特定研究,那麼您擁有的可能是完全合適的。 –

+0

測驗隨自助書一起提供。最後,每個小組成員在55個不同的人格類別中互相排列,然後幾個星期後他們再次相互排列。這將繼續無限期地進行,但我可能會在第10次測驗之後開始刪除舊數據。 –

回答

0

無論何時您想以任何方式處理數據(如製作postgame統計數據),建議您使用數據庫。你的db設計非常簡單,缺乏一些靈活性,比如說,你想在後面添加更多的問題(現在你必須添加額外的列)。

因此,這取決於您打算如何處理收集的數據,以及是否打算擴展測驗規則。

0

這太長了評論。

問題應該在一張表中,questions不是每個問題一張表。一個基本的問題表將有每個問題和它的正確答案。這對你的問題可能已經足夠了。

對於調查(和我想象中的測驗),存在版本控制問題,因爲問題可能會隨着時間慢慢變化。作爲一個有點微不足道的例子,你可能會先問「你的性別是什麼?」最初提供了兩個答案「男」,「女」。隨着時間的推移,您可能會開始添加其他答案:「其他」,「變性人」,「雌雄同體」等。在分析答案時,您可能需要知道在特定時間提問的問題版本。

這是一個調查的例子,沒有正確的答案,但類似的想法適用於測驗:問題和答案可能會隨着時間的推移而有所變化,但你仍然希望它們在問題2中得到認可,但是你想要知道被問到的版本。