0

質問応答システムがあります。質問には4つの選択肢と1つの回答があります(正解はなく、ユーザーの回答にすぎません)。では、これら3つのテーブル間の関係をどのように作成する必要がありますか?私が以下でしたことは正しいですか?4つの選択肢があるので質問テーブルに何かが欠けているようです(どのように挿入しますか?)

Question Table: QuestionId, QuestionText
Choice Table: ChoiceId, ChoiceText, QuestionId
Answer Table: AnswerId, ChoiceId, QuestionId, UserId

前もって感謝します。これはstackoverflowの私の最初の質問です:)

良い1日を、

アルパー

4

1 に答える 1

0

ChoiceIdをすでに特定しているため、データを完全に正規化する場合は、 in tableQuestionIdを取り除くことができます。QuestionIdAnswer

ただし、次の構造を使用します。

create table questions (
    question_id number primary key,
    question_text text
);
create table questions_choices (
    question_id number references questions(question_id),
    choice_number number,
    choice_text text,
    primary key(question_id, choice_number)
);
create table answers (
    answer_id number primary key,
    user_id number references users(user_id),
    question_id number,
    choice_number number,
    foreign key (question_id, choice_number) references questions_choices(question_id, choice_number)
);

これはあなたが持っているものに似ていますが、questions_choicesテーブルに代理キーがありません。

于 2012-05-23T15:27:28.167 に答える