0

我有一个问答系统。一个问题有 4 个选项和 1 个答案(没有正确答案,只是用户的答案)。那么我应该如何建立这三个表之间的关系呢?我在下面所做的是否正确?就像问题表中缺少某些东西一样,因为我有 4 个选择(我将如何插入它们?)

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

先感谢您。这是我在stackoverflow中的第一个问题:)

祝你今天过得愉快,

阿尔珀

4

1 回答 1

0

既然ChoiceId已经确定了 a ,那么如果你想对你的数据进行完全规范化,你 QuestionId可以摆脱table 。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 回答