我想创建不同的问题集并存储答案
这是我试过的
表格问题 id,name
表格字段 id,label
表关系 id,question_id,field_id
这很有效,但仅适用于问题的显示部分 但是存储答案呢?我不能水平存储答案因为我没有引用(列名),而且垂直对数据库来说非常糟糕吗?
即时通讯使用mysql。什么是最好的方法呢? THX!
答案 0 :(得分:2)
您可以再添加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}
当然,您必须进一步处理结果。
答案 1 :(得分:1)
简单。
您只需要另一张表来存储答案:
ID question_id field_id(回答)
您可能还需要一个字段来将您的“答案”与某些内容相关联,例如正在回答的人或问卷。