我有两个表,如下面的快照.
![图] [1]
场景: 一个问题应该只有一个正确答案,但可以有很多(在我的情况下为3个)错误答案(如测验节目).
问题:
Questions表中有多个答案Answers,但只有一个正确的答案.正确的答案是AnswerID在Questions表和它关系到AnswerID在列Answer表.但它显示为多对一关系(请参阅粗体字段).
我已将问题表中的UNIQUE约束应用于AnswerID,但它仍显示多对一关系.我可以做什么,以便每个AnswerID列条目链接到问题表中的单个AnswerID?或者这样可以吗?
谢谢
问题表:
CREATE TABLE [dbo].[Questions](
[QuestionID] [int] NOT NULL,
[QuestionText] [nvarchar](max) NOT NULL,
[AnswerID] [int] UNIQUE NOT NULL,
[ImageLocation] [ntext] NULL,
CONSTRAINT [PK_Questions_1] PRIMARY KEY CLUSTERED
Run Code Online (Sandbox Code Playgroud)
答案表:
CREATE TABLE [dbo].[Answers](
[AnswerID] [int] NOT NULL,
[AnswerText] [nchar](50) NOT NULL,
[QuestionID] [int] NOT NULL,
CONSTRAINT [PK_Answers] PRIMARY KEY CLUSTERED
Run Code Online (Sandbox Code Playgroud)
另一种方法:
QuestionID从你的Answers桌子上扔下来。AnswerID从表中删除该列Questions。QuestionAnswer(或者更有意义的表,例如Exam、Test等),其中包含 a QuestionID、 anAnswerID和一个IsCorrect标志。Answers到他们的Questions,并标记哪一个是正确的。现在,您也可以重复使用其他问题的答案,并且每个问题和答案仅存在一次。如果您想添加有关问题答案组合的其他元数据,它也可能很有用。例如:
Sequence用于控制答案出现顺序的列。PointValue帮助生成最终分数或等级的列。