Supposons que j'ai une table contenant des rôles de travail:
CREATE TABLE roles
(
"role" character varying(80) NOT NULL,
CONSTRAINT "role" PRIMARY KEY (role)
);
Supposons que j'ai en outre une table, des utilisateurs et que chaque ligne (un utilisateur spécifique) puisse avoir un nombre arbitraire de rôles de travail:
CREATE TABLE users
(
username character varying(12) NOT NULL,
roles character varying(80)[] NOT NULL,
CONSTRAINT username PRIMARY KEY (username)
);
Je devrais probablement m'assurer que chaque membre de users.roles[]
existe dans roles.role. Il me semble que ce que je veux, c'est une contrainte de clé étrangère sur chaque membre de users.roles[]
telle que if fait référence à roles.role.
Cela ne semble pas possible avec les postgres. Suis-je en train de regarder ça dans le mauvais sens? Quelle est la "bonne" façon de gérer cela?
la source