我正在设计一个数据库来存储问题和答案。我计划有 5 个表格:测验、问题、userAnswer 和 multipleChoice
测验:
quizID (int)(primary key) Auto Increment
quizName (varchar)
问题:
questionID (int)(primary key) Auto Increment
quizID (Foreign Key)
question (varchar)
questionType (enum) textbox, multiple choice, int, date, decimal, email, ...
用户:
userID (int)(primary key) Auto Increment
firstname (varchar)
surname (varchar)
...
...
用户答案:
questionID (Foreign Key)
userID (Foreign Key)
answerText
answerDec
answerDate
answerInt
PRIMARY KEY(questionID, userID)
多项选择
choiceID (int)(primary key) Auto Increment
questionID (Foreign Key)
choiceText (varchar)
我的问题出在答案表上,有些答案是自由格式文本,有些是小数,有些是整数(外键)
我该如何处理这个问题?我是否有 4 列,每种类型 1 列?如果是这样,在检索答案时如何有效地选择 3 个中的正确一个,我想尽可能多地在 SQL 中完成“繁重的工作”,而不必使用 PHP 生成动态查询。
最佳答案
如果您不需要搜索答案,那么我建议将它们存储在 JSON 对象或类似对象中,而不必费心使用单独的表。
quiz | question | answers | multipleChoice
---- | ---------- | ----------- | --------------
1 | "Country?" | [ | true
| | "France", |
| | "Germany" |
| | ] |
关于mysql - 如何在又高又窄的MySQL表中存储答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55049031/