1

我正在创建一个测试程序。我现在拥有的三个主要对象是测试、问题和答案。我在数据库中有三个表,测试、问题和答案以及从问题到测试的 FK 以及从答案到问题的外键。作为问题表的一部分,我有一个名为 correct_answer_seq_num 的列,它存储作为该问题正确答案的答案的 seq_num (唯一标识符)。我决定把这个属性放在问题表中,因为只有一个答案可以是正确答案(对于这个特定的测试。我知道有些测试不是这样),如果我把它放在答案表中,那么您可以将所有答案标记为正确。

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

我是不是太看重这个了,如果不是,我应该把财产放在哪里。

没关系,但我使用的是 C#

谢谢!!

4

1 回答 1

1

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

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

这三个Questions都有相同的 available Answers,只有当 anAnswer与 a 相关Question并放在其他位置Answers时,你才能说它是否正确。因此,如果不与 a 关联, AnAnswer就没有“正确性” Question,这使得Answer's“正确性”成为 a 的属性Question,而不是 a Answer。如果相同Answer可能与多个相关联,则尤其如此Questions- 对某些人正确,对其他人不正确。

综上所述,我认为Question.CorrectAnswerAnswer.IsCorrect.

最后,我认为对这类事情大做文章是值得的,就好像你对自己的设计决策和模型的结构不满意,这可能表明有些事情是不对的:)

于 2011-07-08T18:19:18.483 回答