次のようなデータモデルがあります...
- トピックには複数の演習を含めることができます (ExerciseTopic(FK) は TopicId(PK) を参照します)。
- 演習には複数の質問を含めることができます (演習 (FK) は演習 Id (PK) を参照します)。
- 質問には、複数 (4) の AnswerChoices を含めることができます
各選択肢を一意に識別するのはこの組み合わせであるため、AnswerChoices テーブルの 3 つの部分の主キーが必要です。
- データの整合性のために AnswerChoices テーブルに外部キーが必要ですか、それとも
- 複合主キーで十分ですか? 外部キーが必要な場合、それは 2 つの部分からなる複合外部キー (ExerciseId、QuestionId) になりますか?
サンプルデータ ...
- トピック(T1)
- 演習 E1
- 質問 1 (回答の選択肢: a、b、c、d)
- 質問 2 (回答の選択肢: a、b、c、d)
- 質問 3 (回答の選択肢: a、b、c、d)
- 演習 E2
- 質問 1 (回答の選択肢: a、b、c、d)
- 質問 2 (回答の選択肢: a、b、c、d)
- 質問 3 (回答の選択肢: a、b、c、d)
- 演習 E3
- 質問 1 (回答の選択肢: a、b、c、d)
- 質問 2 (回答の選択肢: a、b、c、d)
- 質問 3 (回答の選択肢: a、b、c、d)
- 演習 E1
- トピック(T2)
- 演習 E1
- 質問 1 (回答の選択肢: a、b、c、d)
- 質問 2 (回答の選択肢: a、b、c、d)
- 質問 3 (回答の選択肢: a、b、c、d)
- 演習 E2
- 質問 1 (回答の選択肢: a、b、c、d)
- 質問 2 (回答の選択肢: a、b、c、d)
- 質問 3 (回答の選択肢: a、b、c、d)
- 演習 E3
- 質問 1 (回答の選択肢: a、b、c、d)
- 質問 2 (回答の選択肢: a、b、c、d)
- 質問 3 (回答の選択肢: a、b、c、d)
- 演習 E1