关系模式和完整性约束?

Relational schema and integrity constraints?

请问是否可以使用constraint来设置limited,让一个会员(clen)只能为一个俱乐部(klub)效力?我的意思是这不会发生,例如:id_member = 1 && id_club = 1; ...., id_member = 1 && id_club = 2; 我所拥有的似乎并不完全适合我,我发现它不能解决这个问题。

ALTER TABLE member ADD CONSTRAINT unq_member_and_club UNIQUE(id_member, id_club);

是否可以通过创建脚本中的完整性约束来解决这个问题,或者是否使用了触发器?我是我的创建脚本的一部分。

架构

创建脚本

CREATE TABLE club (
id_club SERIAL NOT NULL,
nazev VARCHAR(256) NOT NULL,
datum_zalozeni VARCHAR(256) NOT NULL
);
ALTER TABLE club ADD CONSTRAINT pk_club PRIMARY KEY (id_club);
ALTER TABLE club ADD CONSTRAINT uc_club_nazev UNIQUE (nazev);

CREATE TABLE coach (
    id_member INTEGER NOT NULL
);
ALTER TABLE coach ADD CONSTRAINT pk_coach PRIMARY KEY (id_member);

CREATE TABLE member (
    id_member SERIAL NOT NULL,
    id_club INTEGER NOT NULL,
    jmeno VARCHAR(256) NOT NULL,
    prijmeni VARCHAR(256) NOT NULL,
    narodnost VARCHAR(256) NOT NULL,
    datum_narozeni VARCHAR(256) NOT NULL
);
ALTER TABLE member ADD CONSTRAINT pk_member PRIMARY KEY (id_member);

CREATE TABLE owner (
    id_member INTEGER NOT NULL
);
ALTER TABLE owner ADD CONSTRAINT pk_owner PRIMARY KEY (id_member);

CREATE TABLE player (
    id_member INTEGER NOT NULL,
    cislo VARCHAR(256) NOT NULL,
    post VARCHAR(256) NOT NULL
);
ALTER TABLE player ADD CONSTRAINT pk_player PRIMARY KEY (id_member);

ALTER TABLE coach ADD CONSTRAINT fk_coach_member FOREIGN KEY (id_member) REFERENCES member (id_member) ON DELETE CASCADE;

ALTER TABLE member ADD CONSTRAINT fk_member_club FOREIGN KEY (id_club) REFERENCES club (id_club) ON DELETE CASCADE;

ALTER TABLE owner ADD CONSTRAINT fk_owner_member FOREIGN KEY (id_member) REFERENCES member (id_member) ON DELETE CASCADE;

ALTER TABLE player ADD CONSTRAINT fk_player_member FOREIGN KEY (id_member) REFERENCES member (id_member) ON DELETE CASCADE;
enter code here
enter code here

您不需要:

ALTER TABLE member ADD CONSTRAINT unq_member_and_club UNIQUE(id_member, id_club);

因为id_membermember的PK,所以id_member = 1只有一条记录,所以id_member = 1不可能同时有id_club = 1 and = 2 .任何 id_member.

都会发生这种情况