質問
テーブルforeign keysに対して実行したいの設定は正しいアイデアであり、複数のフィールドを処理する外部キー制約の追加でSQLを作成する方法はありますか?Answer
セッションテーブル:
SessionId (PK) SessionName
1 AAA
2 AAB
質問表:
QuestionId(PK) SessionId(PK) QuestionContent
1 1 What is 2+2?
2 1 What is 3+3?
1 2 What is 4+4?
2 2 What is 5+5?
回答表:
AnswerId(auto, PK) QuestionId(fk) SessionId(fk) Answer
1 1 1 A
2 1 1 D
3 2 1 C
4 2 1 A
5 1 2 True
6 2 2 A
7 2 2 B
今私が抱えている問題は、Answerテーブルの外部キーに関するものです。どの外部キーを実行するのが正しいか知りたいです。
私が行ったことは、外部キーを追加することです。SessionIdこれは、行をクリックすると、テーブル内のSessionIdと一致することを意味します。SessionIdSession
QuestionId次に、Answerテーブルにリンクしているテーブルに外部キーを提供すると思いましたQuestion。ただし、これに関する問題は、行内でをクリックすると、同じを含むのQuestionIdすべての行が表示されることです。だから私がこれを調べたいのなら:QuestionIdQuestionIdAnswer
AnswerId(auto, PK) QuestionId(fk) SessionId(fk) Answer
1 1 1 A
QuestionId上の外部キーをクリックすると、以下が出力されます。
QuestionId(PK) SessionId(PK) QuestionContent
1 1 What is 2+2?
1 2 What is 4+4?
Answerは、これらの両方の質問に属しているわけではなく、1つの質問にのみ属しているが、両方QuestionIdが同じであるため、両方の質問が表示されます。
したがって、私が考えているのは、ユーザーが行をクリックすると両方を検索し、その回答が属する質問とセッション(試験)を認識して以下に出力する外部キー制約が必要だということQuestionIdです。 :QuestionIdSessionId
QuestionId(PK) SessionId(PK) QuestionContent
1 1 What is 2+2?
私の質問は、2つのフィールドを処理する外部キー制約を作成する方法がわからないということです。また、正しく一緒に外部キーを設定することは正しいですSessionIdか?SessionId and QuestionId