質問
テーブル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
と一致することを意味します。SessionId
Session
QuestionId
次に、Answer
テーブルにリンクしているテーブルに外部キーを提供すると思いましたQuestion
。ただし、これに関する問題は、行内でをクリックすると、同じを含むのQuestionId
すべての行が表示されることです。だから私がこれを調べたいのなら:QuestionId
QuestionId
Answer
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
です。 :QuestionId
SessionId
QuestionId(PK) SessionId(PK) QuestionContent
1 1 What is 2+2?
私の質問は、2つのフィールドを処理する外部キー制約を作成する方法がわからないということです。また、正しく一緒に外部キーを設定することは正しいですSessionId
か?SessionId and QuestionId