#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
триггера.
Недостаток: это сложно и дублирует информацию.