【发布时间】:2013-08-30 13:30:21
【问题描述】:
我有两张表,如下图所示。
![图表][1]
场景: 一个问题应该只有一个正确答案,但可以有很多(在我的例子中是 3 个)错误答案(比如问答节目)。
问题:
Questions 表在Answers 表中有多个答案,但只有一个正确答案。正确答案是Questions 表中的AnswerID,它与Answer 表中的AnswerID 列有关。但它显示为多对一关系(请参阅粗体字段)。
我已对 Question 表中的 AnswerID 应用了 UNIQUE 约束,但它仍然显示多对一关系。我该怎么做才能使每个 AnswerID 列条目链接到 Question 表中的单个 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
答案表:
CREATE TABLE [dbo].[Answers](
[AnswerID] [int] NOT NULL,
[AnswerText] [nchar](50) NOT NULL,
[QuestionID] [int] NOT NULL,
CONSTRAINT [PK_Answers] PRIMARY KEY CLUSTERED
【问题讨论】:
-
为什么不简单地在答案表中添加一个标志 (RigtAnswer)?这将使您免于额外检查(正确答案不在可能的答案列表中......)
-
请也向我们展示您的 FOREING KEY 脚本。
-
@MauricioGracia 我添加了来自 SQL 管理工作室的屏幕截图
-
@iAteABug_And_iLiked_it 看看我的回答,看看它是否是你要找的东西
-
我没有正确阅读这一行:Questions 表在 Answers 表中有多个答案,但只有一个正确答案。 AnswerId 误导了我,因为它应该是 CorrectAnswerId,这表明存在多个答案。以为是一个问题,一个答案。因此我删除了我的答案。