Предположим, у меня есть таблица, содержащая рабочие должности:
CREATE TABLE roles
(
"role" character varying(80) NOT NULL,
CONSTRAINT "role" PRIMARY KEY (role)
);
Предположим, у меня также есть таблица, пользователи, и у каждой строки (определенного пользователя) может быть произвольное количество рабочих мест:
CREATE TABLE users
(
username character varying(12) NOT NULL,
roles character varying(80)[] NOT NULL,
CONSTRAINT username PRIMARY KEY (username)
);
Я, наверное, должен убедиться, что каждый член users.roles[]
существует в role.role. Мне кажется, что мне нужно ограничение внешнего ключа для каждого члена users.roles[]
, если оно ссылается на role.role.
Это не представляется возможным с Postgres. Я смотрю на это неправильно? Каков «правильный» способ справиться с этим?
источник