Реализовать много-много отношений в postgresql - PullRequest
0 голосов
/ 27 августа 2018

Мне нужно реализовать много-много взаимосвязей между таблицами в postgresql.

default SQL способ сделать это - создать:

  • data1
  • data2
  • отношение1 (которое является виртуальной связью между данными1 и данными2)

Поскольку я нахожусь в postgresql Я могу сделать это тремя различными способами:

  • данные1 / данные2 / отношение1 (как описано выше)
  • data1 / data2, но с массивом в data1 или data2 для хранения ссылок
  • data1 / data2, но с json в data1 или данными для хранения ссылок

Какие реализации будут быстрее?

С уважением,

PS: используется для создания json представления данных1, содержащего все данные2

1 Ответ

0 голосов
/ 27 августа 2018

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

  • Первый: data1/data2+relation - это реализация "общего назначения", которая будет быстрой для большинства применений. Он ориентирован на общее моделирование сущностей и его гибкость. Отличительной особенностью этого варианта является то, что он легче переживет будущие [непредсказуемые] изменения в модели или приложении.

  • Второй data1/data2+array и третий data1/data2+json являются особыми случаями, которые могут быть очень быстрыми при уменьшенном числе случаев. Если вам нужно оптимизировать эти, то эти решения могут быть отличными. Тем не менее, они не будут очень хорошо решать другие случаи, и они могут стать очень медленными для общих запросов.

Итог: я бы [очень лично] согласился с первым, если только у меня нет реальной веской причины использовать один из других.

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