假设我有一个包含工作角色的表:
CREATE TABLE roles
(
"role" character varying(80) NOT NULL,
CONSTRAINT "role" PRIMARY KEY (role)
);
Run Code Online (Sandbox Code Playgroud)
假设我还有一个表、用户,并且每一行(一个特定用户)可以有任意数量的工作角色:
CREATE TABLE users
(
username character varying(12) NOT NULL,
roles character varying(80)[] NOT NULL,
CONSTRAINT username PRIMARY KEY (username)
);
Run Code Online (Sandbox Code Playgroud)
我应该确保每个成员都users.roles[]
存在于roles.role 中。在我看来,我想要的是对每个成员的外键约束users.roles[]
,如果引用了roles.role。
这对于 postgres 似乎是不可能的。我是不是看错了?处理此问题的建议“正确”方法是什么?