对于引用的 table PostgreSQL,没有匹配给定键的唯一约束

there is no unique constraint matching given keys for referenced table PostgreSQL

我使用 PostgreSQL 创建了一个 ER 图,并尝试根据导出的 .sql 文件创建表,但我收到错误。我可能会犯结构性错误。如果您注意到实体关系图的结构性错误,您能解释一下吗?

错误:

Error image

这是我的 ER 图:

ER DIAGRAM IMAGE

这是我导出的 SQL 脚本:

BEGIN;


CREATE TABLE public."Persons"
(
    id bigserial NOT NULL,
    name character varying(30) NOT NULL,
    surname character varying(30) NOT NULL,
    email character varying(30),
    PRIMARY KEY (id)
);

CREATE TABLE public."System_Personals"
(
    id bigserial NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE public."Job_Seekers"
(
    id bigserial NOT NULL,
    ssn character(11) NOT NULL,
    birth_date date NOT NULL,
    password character varying(30) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE public."Employers"
(
    id bigserial NOT NULL,
    company_name character varying(30) NOT NULL,
    website character varying(40) NOT NULL,
    phone_number character(11) NOT NULL,
    password character varying(30) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE public."Jobs"
(
    id bigserial NOT NULL,
    role character varying(30) NOT NULL,
    definition character varying(500) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE public."Job_Announcements"
(
    id bigserial NOT NULL,
    title character varying(100) NOT NULL,
    company_name character varying(30) NOT NULL,
    role character varying(30) NOT NULL,
    city_name character varying(30) NOT NULL,
    salary bigint NOT NULL,
    job_definition character varying(300) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE public."Cities"
(
    id bigserial NOT NULL,
    name character varying(30) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE public."Activations"
(
    id bigserial NOT NULL,
    email character varying(30) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE public."Employer_Activations"
(
    id bigserial NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE public."Job_Seeker_Activations"
(
    id bigserial NOT NULL,
    ssn character(11) NOT NULL,
    PRIMARY KEY (id)
);

ALTER TABLE public."System_Personals"
    ADD FOREIGN KEY (id)
    REFERENCES public."Persons" (id)
    NOT VALID;


ALTER TABLE public."Job_Seekers"
    ADD FOREIGN KEY (id)
    REFERENCES public."Persons" (id)
    NOT VALID;


ALTER TABLE public."Employers"
    ADD FOREIGN KEY (id)
    REFERENCES public."Persons" (id)
    NOT VALID;


ALTER TABLE public."System_Personals"
    ADD FOREIGN KEY (id)
    REFERENCES public."Jobs" (id)
    NOT VALID;


ALTER TABLE public."Employers"
    ADD FOREIGN KEY (id)
    REFERENCES public."Cities" (id)
    NOT VALID;


ALTER TABLE public."Job_Announcements"
    ADD FOREIGN KEY (city_name)
    REFERENCES public."Cities" (name)
    NOT VALID;


ALTER TABLE public."Job_Announcements"
    ADD FOREIGN KEY (role)
    REFERENCES public."Jobs" (role)
    NOT VALID;


ALTER TABLE public."Job_Announcements"
    ADD FOREIGN KEY (job_definition)
    REFERENCES public."Jobs" (definition)
    NOT VALID;


ALTER TABLE public."Employer_Activations"
    ADD FOREIGN KEY (id)
    REFERENCES public."Activations" (id)
    NOT VALID;


ALTER TABLE public."Job_Seeker_Activations"
    ADD FOREIGN KEY (id)
    REFERENCES public."Activations" (id)
    NOT VALID;


ALTER TABLE public."Job_Seeker_Activations"
    ADD FOREIGN KEY (ssn)
    REFERENCES public."Persons" (id)
    NOT VALID;


ALTER TABLE public."Activations"
    ADD FOREIGN KEY (email)
    REFERENCES public."Persons" (email)
    NOT VALID;

END;

为什么会出现该错误?有帮助吗?

所有这些都违反了:

ALTER TABLE public."Job_Announcements"
    ADD FOREIGN KEY (city_name)
    REFERENCES public."Cities" (name)
    NOT VALID;

ALTER TABLE public."Job_Announcements"
    ADD FOREIGN KEY (role)
    REFERENCES public."Jobs" (role)
    NOT VALID;

ALTER TABLE public."Job_Announcements"
    ADD FOREIGN KEY (job_definition)
    REFERENCES public."Jobs" (definition)
    NOT VALID;

ALTER TABLE public."Activations"
    ADD FOREIGN KEY (email)
    REFERENCES public."Persons" (email)
    NOT VALID;

The manual:

A foreign key must reference columns that either are a primary key or form a unique constraint.