2013-10-09 73 views
0

說我有一張桌子,我會存儲問題。 現在我想跟蹤每個人平均花費多少時間以及多少人提出正確的解決方案。問卷調查時間花費的mysql

  1. 我會將每個問題的時間花費在table_questions本身或不同的存儲中。
  2. 我是否可以在table_questions中存儲回答的權限,也可以單獨存儲回答權限,甚至可以花費時間。

我猶豫的原因是雙重的。首先我不希望用戶能夠對我的問題執行更新查詢。但是分開花在另一張桌子上的時間和「回答良好」的時間似乎對我來說很奇怪,因爲它們是這個問題的固有問題?

有沒有人與規範化人才(不像我)知道什麼是一個好方法?

+1

這兩個問題的答案可能都不一樣。如果你的table_questions表有任何用戶信息,那麼它的名字是誤導性的。 –

+0

對不起,我應該更好地解釋它。我不存儲「特定」用戶。我只是想跟蹤用戶「一般」 –

回答

0

我的建議:

不要將其命名錶TABLE_QUESTIONS或TABLE_USERS或任何類似,除非你有一個很好的理由,我不能在此刻想到一個。把他們叫做問題和用戶。

如果你實際上有一個USERS表,並且你關心誰正確回答(根據問題的措辭我無法判斷),那麼我認爲你也應該有一個USER_QUESTIONS表。該表可能是這樣的:

QUESTIONS 
--------- 
Question_Id  
Question_Descr 

USERS 
----- 
User_Id   
User_Name 

USER_QUESTIONS 
-------------- 
Question_Id 
User_Id 
Answer 
Grade 
StartTime 
EndTime 

然後問題(也是唯一的問題),走在自己的表,和用戶(只有用戶)走在自己的表。但是當一個用戶回答一個問題時,它會出現在混合表格中。

您在用戶和問題之間有多對多的關係,創建這樣的中間表是解決這個問題的常用方法。

+0

如果你想跟蹤每個問題的時間花在用戶的具體時間上,而不是在一般的問題上,你會使用相同的方法嗎? –

+0

@ObiWanKenobi - 我會的。否則,很難計算出適當的平均值。如果說平均時間爲3.1分鐘,而某人需要10分鐘,那麼平均值是如何影響的?爲了知道,你將不得不儲存超過一個號碼 - 至少是人數。但是10可能是一個誤導性的異常值,因此即使計數你也很難解釋結果。所以是的,我會分開保存它們。但我相信其他人會有不同的想法。 – MJB

+0

Thx MJB您的回覆!我真的很感激它。我可能會按你的建議去做。我首先想用php計算基於計數的平均時間(問題已完成x次),並且將其用作分頻器。所以說平均值爲1分鐘,問題回答9次,當前人需要10分鐘。平均值爲(9 * 1分鐘+ 1 * 10分鐘)/ 10。我有點擔心,隨着時間的推移,存儲所有這些數據的表將會變得比可用的表大?任何人都想在這件事上擺脫他的智慧? –