У меня есть 2 связанные таблицы: вопросы и ответы
Вопросы
CREATE TABLE questions (
id SERIAL PRIMARY KEY,
title TEXT,
answer_ids INTEGER[]
);
Ответы
CREATE TABLE answers (
answer_id SERIAL PRIMARY KEY,
question_id INTEGER
REFERENCES questions,
body TEXT
);
Текущая реализация:
Когда в таблицу ответов добавляется строка, я помещаю answer_id
ответа в массив answer_ids
таблицы вопросов в соответствующей строке. т.е.
Если добавлен ответ answer_id = 5
на вопрос id = 1
. Я бы сделал что-то вроде
UPDATE questions SET answer_ids = ARRAY_APPEND(answer_ids, 5) WHERE id = 1;
Чего я хочу достичь:
Я не обязательно ищу способ добавить ответы в таблицу вопросов, так как считаю, что это будет излишним, какой смысл тогда иметь таблицу ответов?
Я ищу запрос, который позволяет мне получить вопрос, но вместо того, чтобы получить массив answer_ids
, я хочу вместо него получить массив из answers
. Таким образом, запрос вернет что-то вроде этого в JSON:
{ id: 1,
title: 'title of question 1',
answers: [{ answer_id: 1,
question_id: 1,
body: 'body of answer 1'},
{ answer_id: 3,
question_id: 1,
body: 'body of answer 3'}]
}