我想创建不同的问题集并存储答案
这是我试过的
表问题 ID、名称
表字段 id、标签
表关系 id、question_id、field_id
这很好用,但仅适用于问题的显示部分,但是存储答案呢?我无法水平存储答案,因为我没有参考(列名),垂直存储对数据库非常不利,对吧?
我正在使用 mysql。最好的方法是什么?谢谢!
我想创建不同的问题集并存储答案
这是我试过的
表问题 ID、名称
表字段 id、标签
表关系 id、question_id、field_id
这很好用,但仅适用于问题的显示部分,但是存储答案呢?我无法水平存储答案,因为我没有参考(列名),垂直存储对数据库非常不利,对吧?
我正在使用 mysql。最好的方法是什么?谢谢!
您可以再添加 1 个表来存储答案:
question_id PK INT
user_id PK INT <-- or maybe anything that identifies the user
field_id PK INT
answer VARCHAR <-- or TEXT , depends on your usage
返回所有结果(假设答案表命名为tbl_answer
):
SELECT `c.name` AS question, b.label, answer FROM tbl_answer a
LEFT JOIN fields b ON a.field_id=b.id
LEFT JOIN questions c ON a.question_id=c.id
返回特定用户的结果:
SELECT `c.name` AS question, b.label, answer FROM tbl_answer a
LEFT JOIN fields b ON a.field_id=b.id
LEFT JOIN questions c ON a.question_id=c.id
WHERE user_id={user id here}
要返回特定问题的结果:
SELECT `c.name` AS question, b.label, answer FROM tbl_answer a
LEFT JOIN fields b ON a.field_id=b.id
LEFT JOIN questions c ON a.question_id=c.id
WHERE question_id={question id here}
当然,您必须对结果进行进一步处理。
简单的。
您只需要另一个表来存储答案:
id question_id field_id(答案)
您可能还需要一个字段来将您的“答案”与某事相关联,例如正在回答的人或问卷。