【发布时间】:2015-03-24 20:06:17
【问题描述】:
我的数据由问题和答案组成。它还显示答案的 versionNr 是什么,并显示哪些人更改了哪个答案。 有些问题可能有相同的答案。
questionID Question Answer VersionNr User date
1 Who is....? W.H. Smith 1.0 ...@test.com 1/1/14
1.1 ...@test.com 3/8/14
2 What is...? 3% 1.0 ...@test.com 1/2/14
RG = 重复组
粗体 = 复合键/主键
0NF:
(questionID, question, AnswerID, answer,RG{versionNr, user, date}
1NF:
(questionID、问题、AnswerID、答案)
(questionID、AnswerID、VersionNr、用户、日期)
2NF/3NF:
Q(questionID, question, AnswerID)
Ans(AnswerID, answer)
版本(问题 ID、AnswerID、VersionNr、用户、日期)
我的问题是我是否应该从版本中删除 questionID,因为 versionNr、日期和用户提供了关于答案而不是问题的信息。
【问题讨论】:
-
你说两个问题可能有相同的答案是什么意思?例如,如果您的意思是这是一个数学测验,并且您可能有两个问题的答案都是“4”,那么我会说这无关紧要。您不希望两个问题都指向同一个答案记录,因为如果有人意识到其中一个答案是错误的并且应该是“3”怎么办?好吧,也许你的答案记录是不可变的,因为如果有变化,你就会创建一个新版本。但是寻找巧合的重复,那么,什么,你可以保存创建记录?,通常不是一个好主意。
标签: database database-design relational-database primary-key normalization