说我有一张桌子可以存储问题。 现在,我想跟踪人们平均每个问题花费的时间,以及有多少人提出了正确的解决方案。
我犹豫的原因有两个。首先,我不希望用户能够对我的问题执行更新查询。但是把时间花在一个不同的表格上并且“回答好”对我来说似乎很奇怪,因为它们是问题所固有的?
有没有正常化天赋的人(不像我)知道什么是好方法?
答案 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
然后问题(和唯一的问题)进入他们自己的表格,用户(和只有用户)进入他们自己的表格。但是当用户回答问题时,它会进入混合表格。
用户和问题之间存在多对多关系,创建这样的中间表是解决问题的正常方法。