Соединительные таблицы против массивов внешних ключей?

m моделирование отношений «многие ко многим», когда к отношениям обращаются большую часть времени только с одной стороны. Это'больше похоже на иерархию, доступ к которой осуществляется сверху вниз, а не наоборот.

Опрос имеет и принадлежит многимВопросы имеет и принадлежит многимОтветы.

Обе взаимосвязи должны быть «многие ко многим», потому что один и тот же вопрос может быть повторно использован в разных опросах и один и тот же ответ во многих вопросах. Это требование.

Стандартная реализация M2M будет использовать две соединительные таблицы,surveys_questions а такжеquestions_answers, Вместо этого ядумаю об использовании PostgreSQLцелочисленные массивы для храненияquestion_ids в опросе иanswer_ids обсуждаемый.

Мы можем использовать ЛЮБОЙ оператор для запроса всех строк, соответствующих массиву внешнего ключа.

Как мы будем запрашивать все опросы с их вопросами и вопросами?ответы с помощью SQL?

Как мы можем сопоставить порядок строк, возвращаемых с массивом внешнего ключа? то есть. использование question_ids = [1,2,3] гарантированно возвращает строки вопросов с порядком 1, 2, 3.

Как это влияет на производительность по сравнению с соединительными таблицами (при условии правильных индексов, какими бы они ни были)?

Вы бы предложили это? Есть ли какие-то ресурсы о моделировании M2M, как это?

Обновить

Было предложение добавить ссылочную целостность для внешних ключей массива в PostgreSQL 9.3, но это не так.т включены:http://blog.2ndquadrant.com/postgresql-9-3-development-array-element-foreign-keys/

ТАК вопрос о поддержании порядка с использованием массива внешних ключейPostgreSQL JOIN с типом массива с порядком элементов массива, как реализовать?

Ответы на вопрос(1)

Ваш ответ на вопрос