sql - 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]}]
或者有没有更好的方法来做到这一点。
解决方案
推荐阅读
- android - proguard applymapping - mapping.txt 的更改不适用于下一个构建签名的 apk
- json - 在golang http.NewRequest的payload中提交变量
- flutter - Flutter - 带有 SingleTickerProviderStateMixin 的页面导致不必要的构建
- reactjs - 我想在我的 react Typescript 项目中渲染一个 html 文件。我该怎么做呢?
- python - Plotly:如何更改子图的 y 轴范围?
- .htaccess - 从文档根目录的子目录重定向到同级目录(文档根目录的不同子目录)
- python - 在 PyQt5 中清除 QTableView
- python - 为什么我收到错误:UnboundLocalError: local variable 'lcm' referenced before assignment
- java - 如何设置抽象类变量?
- python - 通过 sys.set_trace 访问 Python 解释器的数据栈