Supponiamo di avere una tabella contenente ruoli di lavoro:
CREATE TABLE roles
(
"role" character varying(80) NOT NULL,
CONSTRAINT "role" PRIMARY KEY (role)
);
Supponiamo che io abbia una tabella, gli utenti e ogni riga (un utente specifico) può avere un numero arbitrario di ruoli lavorativi:
CREATE TABLE users
(
username character varying(12) NOT NULL,
roles character varying(80)[] NOT NULL,
CONSTRAINT username PRIMARY KEY (username)
);
Probabilmente dovrei assicurarmi che ogni membro di users.roles[]
esiste in role.role. Mi sembra che ciò che voglio sia un vincolo di chiave esterna su ogni membro di users.roles[]
tale che se fa riferimento a ruoli.role.
Questo non sembra possibile con Postgres. Sto guardando questo nel modo sbagliato? Qual è il modo "giusto" suggerito per gestirlo?