0

May I ask if you can use constraint to set limited so that one member (clen) can play for just one club (klub) ? My point is that this does not happen, for example: id_member = 1 && id_club = 1; ...., id_member = 1 && id_club = 2; What I have does not seem entirely appropriate to me here and it occurs to me that it does not solve this problem.

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

Is it possible to solve this with integrity constraints in the create script at all or are triggers used for it? I am a part of my create script.

Schema

enter image description here

Create script

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 

1 Answer 1

1

You do not need:

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

because id_member is PK of member then there is only one record with id_member = 1 then it is not posible to have id_club = 1 and = 2 simultaneously for id_member = 1. Thats ocurs for any id_member.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.