添加字符串数组作为列SQL

时间:2016-03-18 17:08:12

标签: sql sql-server string

CREATE TABLE [dbo].[Questions] (    
    [QuestionID] INT           NOT NULL,
    [Question]   NCHAR (300)   NOT NULL,
    [Choices]    NCHAR [200]   NOT NULL, -- something like this
    [Answer]     NCHAR (200)   NOT NULL, -- one of the indexes in Choices
);

我有多个选择问题,我将其存储到数据库中,我希望将所有信息组合在一个表中。 QuestionIDQuestion并不困难,但我不知道如何设置一些字符串数组来存储可能的答案(答:一,B:两,C:三,D:四)进入Choices列并让Answer列存储正确选择的副本或正确选择的索引(以较容易者为准)。

我快速阅读的很多回复都表明,文本文件会更容易,但是不是我想要做的事情。

这是一个个人项目(不能在任何实际生产中使用),因此无论如何都不必是安全或安全的。任何有效的黑客解决方案都是完美的。

1 个答案:

答案 0 :(得分:2)

您应该使用单独的Answers表,如下所示:

CREATE TABLE [dbo].[Answers] (
    [AnswerID]   INT NOT NULL PRIMARY KEY,
    [QuestionID] INT NOT NULL, -- linked to Questions.QuestionID
    [Choice]     NCHAR [200]
);

然后,您将问题表链接中的答案字段链接到实际答案的答案ID。

(N.B。这是不是文本文件,这是第二个链接表)

ETA

您可以将问题表更改为此

CREATE TABLE [dbo].[Questions] (    
    [QuestionID] INT           NOT NULL,
    [Question]   NCHAR (300)   NOT NULL,
    [AnswerID]   INT        -- this is linked to Answers.AnswerID
);

Questions.AnswerID是Answers中具有问题正确答案的行的索引。