假设我有一张桌子,在那里我可以储存问题。现在我想追踪一下,每个问题平均花费多少时间,有多少人想出了正确的解决方案。
我犹豫不决的原因有两方面。首先,我不希望用户能够对我的问题执行更新查询。但是,在不同的桌子上把时间和“回答得好”分开,对我来说似乎很奇怪,因为它们是问题所固有的?
任何有正常化天赋的人(不像我)知道什么是好方法吗?
发布于 2013-10-09 18:07:23
我的建议:
不要将表命名为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然后问题(只有问题)进入自己的表,用户(只有用户)进入自己的表。但是当用户回答一个问题时,它会出现在混合表中。
在用户和问题之间存在着多到多的关系,创建这样的中间表是解决这个问题的正常方法。
https://stackoverflow.com/questions/19277331
复制相似问题