| CCbolt Temat założony przez niniejszego użytkownika | [SQL] Ocena kodu i stosowanie wartości serial  » 2017-06-06 20:57:17 Możecie ocenić kod? Jak stosuje się serial w insercie? SET client_encoding = 'utf-8';
 
 create table typ_nieruchomosci
 (
 ID_typnieruchomosci serial NOT NULL,
 typ_nieruchomosci varchar NOT NULL,
 CONSTRAINT typ_nieruchomosci_pk PRIMARY KEY( ID_typnieruchomosci )
 );
 
 create table stanowisko
 (
 ID_stanowisko serial NOT NULL,
 nazwa_stanowiska varchar NOT NULL,
 pensja char NOT NULL,
 nr_telefonu char NOT NULL,
 email varchar NOT NULL,
 data_zatrudnia date NOT NULL,
 CONSTRAINT stanowisko_pk PRIMARY KEY( ID_stanowisko )
 );
 
 create table pracownicy
 (
 ID_pracownik serial NOT NULL,
 stanowisko2 varchar,
 imie varchar NOT NULL,
 nazwisko varchar NOT NULL,
 data_urodzenia date NOT NULL,
 data_zatrudnia date NOT NULL,
 stanowisko varchar NOT NULL,
 CONSTRAINT pracownicy_pk PRIMARY KEY( ID_pracownik ),
 CONSTRAINT stanowisko_fk FOREIGN KEY( stanowisko2 )
 REFERENCES stanowisko( ID_stanowisko )
 ON UPDATE CASCADE ON DELETE CASCADE
 );
 
 
 create table nieruchomosc
 (
 ID_nieruchomosc serial NOT NULL,
 typ_nieruchomosci char,
 nr_kw varchar( 6 ) NOT NULL,
 metraz char NOT NULL,
 adres varchar NOT NULL,
 CONSTRAINT nieruchomosc_pk PRIMARY KEY( ID_nieruchomosc ),
 CONSTRAINT typ_nieruchomosci_fk FOREIGN KEY( typ_nieruchomosci )
 REFERENCES typ_nieruchomosci( ID_typnieruchomosci )
 );
 
 
 create table klient
 (
 ID_klient serial NOT NULL,
 nieruchomosc serial,
 pracownik serial,
 PESEL char NOT NULL,
 imie varchar NOT NULL,
 nazwisko varchar NOT NULL,
 nr_telefonu char NOT NULL,
 adres char NOT NULL,
 email varchar NOT NULL,
 
 CONSTRAINT klient_pk PRIMARY KEY( ID_klient ),
 CONSTRAINT nieruchomosc_fk FOREIGN KEY( nieruchomosc )
 REFERENCES nieruchomosc( ID_nieruchomosc ),
 CONSTRAINT pracownicy_fk FOREIGN KEY( pracownik )
 REFERENCES pracownicy( ID_pracownik )
 );
 
 create table biuro
 (
 ID_biuro serial NOT NULL,
 pracownicy serial,
 nieruchomosc serial,
 klient serial,
 CONSTRAINT biuro_pk PRIMARY KEY( ID_biuro ),
 CONSTRAINT pracownicy_fk FOREIGN KEY( pracownicy )
 REFERENCES pracownicy( ID_pracownik ),
 CONSTRAINT nieruchomosc_fk FOREIGN KEY( nieruchomosc )
 REFERENCES nieruchomosc( ID_nieruchomosc ),
 CONSTRAINT klient_fk FOREIGN KEY( klient )
 REFERENCES klient( ID_klient )
 );
 
 | 
|  | 
| DejaVu | » 2017-06-06 23:34:28 | 
|  | 
| hit | » 2017-06-07 08:25:00 Brakuje mi tu spójności: ID_typnieruchomosci serial NOT NULL, typ_nieruchomosci char, Ponadto przyjęło się, żeby tabele nazywać w liczbie mnogiej (pola w pojedynczej). | 
|  | 
| bombatom69 | » 2017-06-12 16:17:28 To nie ma prawa działać.Tabela pracownicy:
 Pomijam fakt, że nie rozumiem po co są pola typu varchar "stanowisko2" i "stanowisko".
 
 FK w tej tabeli wiąże pole stanowisko2(varchar) z polem stanowisko.ID_stanowisko, które jest serialem.
 Nie wiem jak w pgsql ale ja nie słyszałem aby takie wiązanie było możliwe.
 
 Serial w Postgresie(jak się domyślam) działa podobnie jak pole integer + sequence w Oracle-u.
 
 Dalej nie sprawdzam, bo ten kod nie powinien się wykonać.
 
 Gdy już ostatecznie zdecydujesz się na pgsql, to poczytaj też o działaniu logiki w tym silniku, bo z tego co wyczytałem, nie jest ona taka jak w innych bazach.
 | 
|  | 
| « 1 » |