gpt4 book ai didi

c# - 在数据库中存储调查的多项选择答案

转载 作者:搜寻专家 更新时间:2023-10-30 23:48:02 24 4
gpt4 key购买 nike

我尝试使用基于 ms sql server 的 asp.net (c#) 创建一个调查应用程序。用户可以看到要输入的多项选择、单项选择和文本框答案选项。我可以在我的数据库中存储文本框和单选答案,但我无法存储多个答案。

我的设计如下:

员工 : (id, username)

survey_title : (id, title, description, creation_data)

survey_answer_type:(id,type_name)

survey_question : (id, question, survey_id, survey_answer_type_id)

survey_answer : (id, question_id, answer) -所有答案选项(如果答案类型为文本框,则答案为空)-

survey_eanswer : (id, employee_id, answer_id, str_answer)-员工的答案(str_answer 用于存储文本框答案)-

我找不到在我的 survey_eanswer 表中存储多个答案的方法,而且我知道逗号分隔的输入不是一个好的设计策略。

谢谢。

最佳答案

一个好的设计应该是有一张 table

survey_question_options: (ID,QUESTION_ID,OPTION)

|ID|question_id|选项|
|1|1|红|
|2|1|蓝色|
|3|1|白色|
|4|2|小|
|5|2|中|
|6|2|大|

然后只需保存所选选项的 ID。将每个选择的选项保存为自己单独的数据库条目。
这使您能够使用标准的 sql 操作来加入/分组并在最后评估您的调查。

例如,您想现在有多少用户选择了媒体:

SELECT Count(*)
FROM survey_answers
WHERE question_ID = 2 AND answer = 2

或者,更复杂但意思相同:

SELECT Count(survey_answer.id)
FROM survey_answers
LEFT JOIN survey_question_options ON
survey_question_options.ID = survey_answers.Answer AND
survey_question_options.question_ID = survey_answers.question
WHERE survey_answer.question_ID = 2
AND survey_question_options.option LIKE 'medium'

关于c# - 在数据库中存储调查的多项选择答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25605437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com