首页 > 解决方案 > SQL查询组合所有具有相同问题ID的答案

问题描述

我必须为我的提问者表单设计数据库表。我正在使用 Postgres 数据库。我在下面给出的较早方法是因为我的问题数量是固定的,并且要求一个问题只能有一个答案。

id  submit_by_id    q-1   q-2   q-3
1       12           a     b     c
2       12           a     b     c
3       11           a     b     c

但后来要求发生了变化,一个答案可以有多个答案。我不想将答案保存为 JSON 格式,因为我必须执行搜索、过滤和排序操作。上述设计的问题在于,如果要保存多个答案,则必须重复冗余信息。例如

id  submit_by_id    q-1   q-2   q-3
1       12           a     b     c
2       12           a     b     c
3       11           a     b     c
4       12           d     b     c

为了克服这个问题,我设计了两个单独的表

问题表

id  question    
1   xyz     
2   abc     
3   cda 

答案表

id  submit_by_id    question_id    answer
1       12             1            espn
2       12             1            star
3       11             2            xyz
4       11             3            abc

这样重复信息的数量可能会更少。所以问题是如何从查询中获得集体答案。我想发送响应

[{q1:[a,c]}, {q2:[a]}]

或者有没有更好的方法来做到这一点。

标签: sqldatabasepostgresqldatabase-design

解决方案


推荐阅读