Использование массива в author_id int ссылается на пользователя (id)

#postgresql #postgraphql

#postgresql #postgraphql

Вопрос:

Вкл https://github.com/calebmer/postgraphql автор показывает схему:

 create table post (
  id serial primary key,
  author_id int non null references user(id),
  headline text,
  body text,
  …
);
  

Как бы мне переписать схему, если я хотел бы указать нескольких авторов и ссылаться на них с помощью массива?
Было бы это: author_id int[] non null references user(id) ?

Комментарии:

1. Невозможно. Вы не можете использовать массивы во внешних ключах (в любом направлении). Вам нужно смоделировать это с помощью правильного отношения «многие ко многим»

Ответ №1:

Вы можете. Но вы не должны.

с ограничением проверки

Вы можете добавить ограничение проверки с помощью функции, которая управляет этим.

Недостаток: это не внешний ключ

с помощью триггера и вспомогательной таблицы

Вы можете добавить таблицу post_author и заполнить ее с помощью On insert or update триггера.

Недостаток: это сложно и дублирует информацию.