<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Liga Piłkarska, problem z tabelami]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=2164&amp;type=atom"/>
	<updated>2014-06-05T14:11:52Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=2164</id>
		<entry>
			<title type="html"><![CDATA[Odp: Liga Piłkarska, problem z tabelami]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5262#p5262"/>
			<content type="html"><![CDATA[SET client_encoding='utf-8';

CREATE TABLE klub
(
    id_klub            CHAR(6),
    nazwa              VARCHAR(32) not null,    
    rok_powstania      INT not null,
    stadion            VARCHAR(40) not null,
    trener             VARCHAR(40) not null,
    CONSTRAINT         klub_id_klub_pk PRIMARY KEY(id_klub)
);
---------------------------------------------------------
CREATE TABLE gosc
(
    id_gosc            CHAR(6),
    CONSTRAINT         gosc_id_gosc_pk PRIMARY KEY(id_gosc),
    CONSTRAINT	       gosc_id_gosc_fk FOREIGN KEY(id_gosc) REFERENCES klub(id_klub)
				 ON UPDATE CASCADE ON DELETE CASCADE
);
---------------------------------------------------------
CREATE TABLE gospodarz
(
    id_gospodarz       CHAR(6),
    CONSTRAINT         gospodarz_id_gospodarz_pk PRIMARY KEY(id_gospodarz),
    CONSTRAINT	       gospodarz_id_gospodarz_fk FOREIGN KEY(id_gospodarz) REFERENCES klub(id_klub)
				ON UPDATE CASCADE ON DELETE CASCADE
);
---------------------------------------------------------
CREATE TABLE mecz
(
    kolejka            INT not null,    
    id_gospodarz       CHAR(6) not null,
    gosc_k             CHAR(6) not null,
    widownia           INT not null,
    id_mecz            CHAR(6),
    data               DATE not null,
    wynik   	       CHAR(15) not null,
    CONSTRAINT         mecz_id_mecz_pk PRIMARY KEY(id_mecz),
    CONSTRAINT         mecz_gosc_k_fk FOREIGN KEY(gosc_k)  REFERENCES gosc(id_gosc)
     			   ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT         mecz_id_gospodarz_fk FOREIGN KEY(id_gospodarz)  REFERENCES gospodarz(id_gospodarz)		   ON UPDATE CASCADE ON DELETE CASCADE
);
---------------------------------------------------------
CREATE TABLE sedzia
(
    id_sedzia          CHAR(6) not null,
    imie               VARCHAR(32) not null,
    nazwisko           VARCHAR(32) not null,
    miasto             VARCHAR(25) not null,
    rodzaj	       VARCHAR(25) not null,
    CONSTRAINT         sedzia_id_sedzia_pk PRIMARY KEY(id_sedzia)
);
---------------------------------------------------------
CREATE TABLE pilkarz
(
    id_pilkarz         CHAR(6),
    imie               VARCHAR(32) not null,
    nazwisko           VARCHAR(32) not null,
    pozycja            VARCHAR(3) not null,
    CONSTRAINT         pilkarz_id_pilkarz_pk PRIMARY KEY(id_pilkarz)
);
---------------------------------------------------------
CREATE TABLE statystyki
(
    id_statystyki      CHAR(6),
    pilkarz_id         CHAR(6) not null,
    rodzaj             VARCHAR(15) not null,
    liczba             INT not null,
    id_meczu           CHAR(6) not null,
    CONSTRAINT         statystyki_id_statystyki_pk PRIMARY KEY(id_statystyki),
    CONSTRAINT         pilkarz_fk FOREIGN KEY(pilkarz_id) REFERENCES pilkarz(id_pilkarz)
);
---------------------------------------------------------
CREATE TABLE mecz_sedzia
(
    id_sedzia        CHAR(6) not null,
    id_mecz          CHAR(6) not null,
    CONSTRAINT       mecz_sedzia_id_sedzia_fk FOREIGN KEY(id_sedzia) REFERENCES sedzia(id_sedzia) ON 				UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT       mecz_sedzia_id_mecz_fk FOREIGN KEY(id_mecz)     REFERENCES mecz(id_mecz)     ON 				UPDATE CASCADE ON DELETE CASCADE
);
---------------------------------------------------------
CREATE TABLE mecz_pilkarz
(
    id_pilkarz        CHAR(6) not null,
    id_mecz           CHAR(6) not null,
    CONSTRAINT        mecz_pilkarz_id_pilkarz_fk FOREIGN KEY(id_pilkarz)  REFERENCES pilkarz(id_pilkarz)		 ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT        mecz_pilkarz_id_mecz_fk    FOREIGN KEY(id_mecz)     REFERENCES mecz(id_mecz)       	ON UPDATE CASCADE ON DELETE CASCADE
);

DROP TABLE mecz_pilkarz;
DROP TABLE mecz_sedzia;
DROP TABLE mecz;
DROP TABLE sedzia;
DROP TABLE statystyki;
DROP TABLE pilkarz;
DROP TABLE gospodarz;
DROP TABLE gosc;
DROP TABLE klub;

I nie wiem czy na podstawie tych tabel,ktore do tej pory stworzylem jest mozliwosc wskazania w jakim klubie gra jaki pilkarz, na bank mam zle tabele gospodarz i gosc. Zastanawiam sie w jaki sposob zrobic to tak, ze strzelone gole w danym spotkaniu bylyby jednoczesnie przypisywane do danego pilkarza.]]></content>
			<author>
				<name><![CDATA[Konrad Stepinski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1927</uri>
			</author>
			<updated>2014-06-05T14:11:52Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5262#p5262</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Liga Piłkarska, problem z tabelami]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5261#p5261"/>
			<content type="html"><![CDATA[Ogolnie zeby powiazac tabele pilkarz z tabela klub, to musze to zrobic jakos poprzez tabele mecz ? Zaraz poczytam o tym "ON UPDATE CASCADE ON DELETE CASCADE" bo przyznam ze wrzucilem to troche na pale. Oczywiscie dzieki za poprawienie tych bledow,bo teraz tabele wczytuja sie bez zarzutu :) . Wezme sie za inserty i zobacze jak te rozne SELECT'y beda dzialac lub nie dzialac ( zapewne to drugie ) tu takie przykladowe wykazy ktore moze zawierac:

"historia występów zawodnika, stan rozgrywek (liczba punktów w sezonie), najbardziej skuteczni strzelcy" , o ile najskuteczniejszy strzelec to nie problem, o tyle historia wystepow czy stan rozgrywek pewnie bede musial te tabele inaczej skonstruowac]]></content>
			<author>
				<name><![CDATA[Konrad Stepinski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1927</uri>
			</author>
			<updated>2014-06-05T06:36:37Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5261#p5261</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Liga Piłkarska, problem z tabelami]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5260#p5260"/>
			<content type="html"><![CDATA[Nie skupiałem sie na analizowaniu sensu twojej bazy a tylko poprawiłem błędy składni ale na twoim miejscu poczytał bym o kluczach obcych a zwłaszcza co oznacza i jak działa klauzula "ON UPDATE CASCADE ON DELETE CASCADE" 

SET client_encoding='utf-8';

CREATE TABLE klub
(
    id_klub            CHAR(6),
    rok_powstania      INT not null,
    nazwa              VARCHAR(32) not null,
    adres              VARCHAR(40) not null,
    wlasciciel         VARCHAR(40) not null,
    CONSTRAINT         klub_id_klub_pk PRIMARY KEY(id_klub)
);
---------------------------------------------------------
CREATE TABLE gosc
(
    id_gosc            CHAR(6),
    CONSTRAINT         gosc_id_gosc_pk PRIMARY KEY(id_gosc)
);
---------------------------------------------------------
CREATE TABLE gospodarz
(
    id_gospodarz       CHAR(6),
    CONSTRAINT         gospodarz_id_gospodarz_pk PRIMARY KEY(id_gospodarz)
);
---------------------------------------------------------
CREATE TABLE mecz
(
    id_mecz            CHAR(6),
    gosc_k             CHAR(6) not null,
    id_gospodarz       CHAR(6) not null,
    widownia           INT not null,
    kolejka            INT not null,
    data               DATE not null,
    wynik_do_przerwy   CHAR(5) not null,
    wynik_koncowy      CHAR(5) not null,
    CONSTRAINT         mecz_id_mecz_pk PRIMARY KEY(id_mecz),
    CONSTRAINT         mecz_gosc_k_fk FOREIGN KEY(gosc_k)             REFERENCES gosc(id_gosc) ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT         mecz_id_gospodarz_fk FOREIGN KEY(id_gospodarz)  REFERENCES gospodarz(id_gospodarz) ON UPDATE CASCADE ON DELETE CASCADE
);
---------------------------------------------------------
CREATE TABLE sedzia
(
    id_sedzia          CHAR(6) not null,
    imie               VARCHAR(32) not null,
    nazwisko           VARCHAR(32) not null,
    miasto             VARCHAR(25) not null,
    CONSTRAINT         sedzia_id_sedzia_pk PRIMARY KEY(id_sedzia)
);
---------------------------------------------------------
CREATE TABLE pilkarz
(
    id_pilkarz         CHAR(6),
    imie               VARCHAR(32) not null,
    nazwisko           VARCHAR(32) not null,
    pozycja            VARCHAR(3) not null,
    CONSTRAINT         pilkarz_id_pilkarz_pk PRIMARY KEY(id_pilkarz)
);
---------------------------------------------------------
CREATE TABLE statystyki
(
    id_statystyki      CHAR(6),
    pilkarz_id         CHAR(6) not null,
    rodzaj             VARCHAR(15) not null,
    liczba             INT not null,
    id_meczu           CHAR(6) not null,
    CONSTRAINT         statystyki_id_statystyki_pk PRIMARY KEY(id_statystyki),
    CONSTRAINT         pilkarz_fk FOREIGN KEY(pilkarz_id) REFERENCES pilkarz(id_pilkarz)
);
---------------------------------------------------------
CREATE TABLE mecz_sedzia
(
    id_sedzia        CHAR(6) not null,
    id_mecz          CHAR(6) not null,
    CONSTRAINT       mecz_sedzia_id_sedzia_fk FOREIGN KEY(id_sedzia) REFERENCES sedzia(id_sedzia) ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT       mecz_sedzia_id_mecz_fk FOREIGN KEY(id_mecz)     REFERENCES mecz(id_mecz)     ON UPDATE CASCADE ON DELETE CASCADE
);
---------------------------------------------------------
CREATE TABLE mecz_pilkarz
(
    id_pilkarz        CHAR(6) not null,
    id_mecz           CHAR(6) not null,
    CONSTRAINT        mecz_pilkarz_id_pilkarz_fk FOREIGN KEY(id_pilkarz)  REFERENCES pilkarz(id_pilkarz) ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT        mecz_pilkarz_id_mecz_fk    FOREIGN KEY(id_mecz)     REFERENCES mecz(id_mecz)       ON UPDATE CASCADE ON DELETE CASCADE
);]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2014-06-05T06:05:01Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5260#p5260</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Liga Piłkarska, problem z tabelami]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5259#p5259"/>
			<content type="html"><![CDATA[Moj projekt tabel wyglada nastepujaco:

SET client_encoding='utf-8';

CREATE TABLE klub
(
	id_klub 		CHAR(6),
	rok_powstania		INT not null,
	nazwa 			VARCHAR(32) not null,
	adres 			VARCHAR(40) not null,
	wlasciciel 		VARCHAR(40) not null,
	CONSTRAINT	        klub_id_klub_pk PRIMARY KEY(id_klub)
);
---------------------------------------------------------
CREATE TABLE gosc
(
	id_gosc		        CHAR(6),
	CONSTRAINT              gosc_id_gosc_pk PRIMARY KEY(id_gosc)
);
---------------------------------------------------------
CREATE TABLE gospodarz
(
	id_gospodarz 		CHAR(6),
	CONSTRAINT		gospodarz_id_gospodarz_pk PRIMARY KEY(id_gospodarz)
);
---------------------------------------------------------
CREATE TABLE mecz
(
	id_mecz			 CHAR(6),
	gosc_k  		 CHAR(6) not null,
	id_gospodarz 		 CHAR(6) not null,
	widownia 		 INT not null,
	kolejka			 INT not null,
	data			 DATE not null,
	wynik_do_przerwy	 CHAR(5) not null,
	wynik_koncowy		 CHAR(5) not null,
	CONSTRAINT		 mecz_id_mecz_pk PRIMARY KEY(id_mecz)
	CONSTRAINT 		 mecz_gosc_k_fk FOREIGN KEY(gosc_k)
				 	REFERENCES gosc(id_gosc),
				 ON UPDATE CASCADE ON DELETE CASCADE,
	CONSTRAINT		 mecz_id_gospodarz_fk FOREIGN KEY(id_gospodarz)
					REFERENCES gospodarz(id_gospodarz),
				 ON UPDATE CASCADE ON DELETE CASCADE
);
---------------------------------------------------------
CREATE TABLE sedzia
(
	id_sedzia		 CHAR(6) not null,
	imie 			 VARCHAR(32) not null,
	nazwisko		 VARCHAR(32) not null,
	miasto			 VARCHAR(25) not null,
	CONSTRAINT		 sedzia_id_sedzia_pk PRIMARY KEY(id_sedzia)
);
---------------------------------------------------------
CREATE TABLE pilkarz
(
	id_pilkarz		 CHAR(6),
	imie			 VARCHAR(32) not null,
	nazwisko		 VARCHAR(32) not null,
	pozycja			 VARCHAR(3) not null,
	CONSTRAINT		 pilkarz_id_pilkarz_pk PRIMARY KEY(id_pilkarz)
);
---------------------------------------------------------
CREATE TABLE statystyki
(
	id_statystyki		 CHAR(6),
	pilkarz_id		 CHAR(6) not null,
	rodzaj 			 VARCHAR(15) not null,
	liczba 			 INT not null,
	id_meczu 		 CHAR(6) not null,
	CONSTRAINT 		 statystyki_id_statystyki_pk PRIMARY KEY(id_statystyki)
	CONSTRAINT		 pilkarz_fk FOREIGN KEY(pilkarz_id)
);
---------------------------------------------------------
CREATE TABLE mecz_sedzia
(
	id_sedzia		CHAR(6) not null,
	id_mecz			CHAR(6) not null,
	CONSTRAINT 		mecz_sedzia_id_sedzia_fk FOREIGN KEY(id_sedzia)
					REFERENCES sedzia(id_sedzia)
				ON UPDATE CASCADE ON DELETE CASCADE,
	CONSTRAINT              mecz_sedzia_id_mecz_fk FOREIGN KEY(id_mecz)
					REFERENCES mecz(id_mecz)
				ON UPDATE CASCADE ON DELETE CASCADE
);
---------------------------------------------------------
CREATE TABLE mecz_pilkarz
(
	id_pilkarz		CHAR(6) not null,
	id_mecz			CHAR(6) not null,
	CONSTRAINT 	        mecz_pilkarz_id_pilkarz_fk FOREIGN KEY(id_pilkarz)
					REFERENCES pilkarz(id_pilkarz)
				ON UPDATE CASCADE ON DELETE CASCADE,
	CONSTRAINT 		mecz_pilkarz_id_mecz_fk FOREIGN KEY(id_mecz)
					REFERENCES mecz(id_mecz)
				ON UPDATE CASCADE ON DELETE CASCADE
);

Wyskakuja mi dziwne bledy typu:

NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "sedzia_id_sedzia_pk" for table "sedzia"

ERROR:  syntax error at or near "CONSTRAINT"
LINIA 12:  CONSTRAINT    mecz_gosc_k_fk FOREIGN KEY(gosc_k)

syntax error at or near "CONSTRAINT"
LINIA 9:  CONSTRAINT   pilkarz_fk FOREIGN KEY(pilkarz_id)

Nie wiem co z tym zrobic, dam tez diagram ERD,moze cos zle przelalem na sql'a: [url]http://fotowrzut.pl/M3ORSPAWCN[/url]]]></content>
			<author>
				<name><![CDATA[Konrad Stepinski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1927</uri>
			</author>
			<updated>2014-06-05T05:24:30Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5259#p5259</id>
		</entry>
</feed>
