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

На 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 ответ

Решение

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

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

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

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

с триггером и знакомым столом

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

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

Другие вопросы по тегам