SQL-запрос для объединения всех ответов, имеющих одинаковый идентификатор вопроса - PullRequest
0 голосов
/ 31 мая 2019

Мне нужно спроектировать таблицу базы данных для моей анкеты.Я использую Postgres DB.Более ранний подход, который я использовал, был приведен ниже, так как мой номер вопроса был фиксирован, и требовалось, чтобы один вопрос мог иметь только один ответ.

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]}]

Или есть ли лучший способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...