1

我正在创建一个测试程序。我现在有三个主要的对象是测试,问题和答案。我在数据库中有三个表格,测试,问题和答案,以及从问题到测试的FK以及从问题答案中提供的一个foriegn键。作为问题表的一部分,我有一个名为correct_answer_seq_num的列,其中存储了答案的seq_num(唯一标识符),该答案是该问题的正确答案。我决定把这个属性放在问题表中,因为只有一个答案是正确的答案(对于这个特定的测试,我知道有些测试不是这种情况),如果我把它放在答案表中,那么你可以标记所有的答案是正确的。我应该在哪里放这个对象属性/属性

我遇到的麻烦是我应该把这个属性放在哪个对象中。它不是一个问题的属性,它更像是一个答案的属性,但我仍然认为它应该在问题类中数据完整性。

我是否做了太多这样的事情,如果没有,我应该把财产放在哪里。

不是说它应该重要,但我正在使用C#

谢谢!!

回答

1

我认为你在数据库中完成它的方式是正确的,并且也可以正确地转换为模型。考虑以下几点:

Question AvailableAnswers CorrectAnswer 
    1 * 1   1, 2, 3    1 
    1 + 1   1, 2, 3    2 
    1 + 2   1, 2, 3    3 

所有这三个Questions具有相同的可用Answers,而且只有当Answer关系到一个Question并放置除其他Answers,你可以说无论是正确的。因此,Answer没有与“Question”相关联的“正确性”,这使得Answer's'正确性'是Question的属性,而不是Answer。如果相同的Answer可能与多个Questions相关联,则更是如此 - 对某些人来说是正确的,对其他人不正确。

综上所述,我认为Question.CorrectAnswerAnswer.IsCorrect更有意义。

最后,我认为值得做出这样的事情是很值得的,就好像你对你的设计决策和模型结构不满意一样,这可能表明某些事情是不正确的: )

+0

感谢您的回复。我非常肯定这是要走的路,但有些事却不能与我坐在一起。我问几个朋友谁都同意它应该是question.CorrectAnswer。再次感谢一堆! – jworrin

+0

非常欢迎:) –

相关问题