Misalkan saya memiliki tabel yang berisi peran pekerjaan:
CREATE TABLE roles
(
"role" character varying(80) NOT NULL,
CONSTRAINT "role" PRIMARY KEY (role)
);
Misalkan saya lebih lanjut memiliki tabel, pengguna, dan setiap baris (pengguna tertentu) dapat memiliki jumlah peran pekerjaan yang berubah-ubah:
CREATE TABLE users
(
username character varying(12) NOT NULL,
roles character varying(80)[] NOT NULL,
CONSTRAINT username PRIMARY KEY (username)
);
Saya mungkin harus memastikan bahwa setiap anggota users.roles[]
ada di role.role. Tampaknya bagi saya bahwa apa yang saya inginkan adalah batasan kunci asing pada setiap anggota users.roles[]
sedemikian rupa sehingga jika merujuk pada role.role.
Tampaknya ini tidak mungkin dengan postgres. Apakah saya melihat ini dengan cara yang salah? Apa cara "benar" yang disarankan untuk menangani ini?