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

非常歡迎:) –

相關問題