2012-05-23 66 views
0

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

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

在此先感谢您。这是我在计算器:)

有一个愉快的一天的第一个问题,

的Alper

回答

0

由于ChoiceId已经确定了QuestionId,那么你可以在Answer表摆脱QuestionId如果你想在全面正常化。你的数据。

我会使用,虽然以下结构:

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表中的代理键。