Kopiuj
CREATE TABLE liczba_wypozyczen
(
id_l_w SERIAL NOT NULL,
liczba_w INTEGER NOT NULL,
CONSTRAINT liczba_wypozyczen_pkey PRIMARY KEY (id_l_w)
);
CREATE TABLE kategoria
(
id_ka SERIAL NOT NULL,
kategoria_k VARCHAR(50) NOT NULL,
CONSTRAINT kategoria_pkey PRIMARY KEY (id_ka)
);
CREATE TABLE status_ksiazki
(
id_s_k SERIAL NOT NULL,
status_k VARCHAR(20) NOT NULL,
CONSTRAINT status_ksiazki_pkey PRIMARY KEY (id_s_k)
);
CREATE TABLE zwrot
(
id_z SERIAL NOT NULL,
status_zwrotu VARCHAR(20) NOT NULL,
CONSTRAINT zwrot_pkey PRIMARY KEY (id_z)
);
CREATE TABLE czytelnik
(
id_cz SERIAL NOT NULL,
liczba_wypozyczen INTEGER NOT NULL,
nazwisko VARCHAR(50) NOT NULL,
imie VARCHAR(50) NOT NULL,
pesel BIGINT NOT NULL,
email VARCHAR(100) NOT NULL,
województwo VARCHAR(20) NOT NULL,
kod_pocztowy VARCHAR(6) NOT NULL,
miasto VARCHAR(50) NOT NULL,
adres VARCHAR(50) NOT NULL,
CONSTRAINT czytelnik_pkey PRIMARY KEY (id_cz),
CONSTRAINT fk_czytelnik_liczba_wypozyczen FOREIGN KEY (liczba_wypozyczen)
REFERENCES liczba_wypozyczen (id_l_w)
);
CREATE TABLE logowanie
(
id_l SERIAL NOT NULL,
nazwisko_l INTEGER NOT NULL,
imie_l INTEGER NOT NULL,
login BIGINT NOT NULL,
hasło VARCHAR(8) NOT NULL,
CONSTRAINT logowanie_pkey PRIMARY KEY (id_l),
CONSTRAINT fk_logowanie_czytelnik FOREIGN KEY (imie_l)
REFERENCES czytelnik (id_cz),
CONSTRAINT fk_logowanie_czytelnik_1 FOREIGN KEY (nazwisko_l)
REFERENCES czytelnik (id_cz)
);
CREATE TABLE ksiazka
(
id_ks SERIAL NOT NULL,
status_ks INTEGER NOT NULL,
kategoria_k INTEGER NOT NULL,
isbn BIGINT NOT NULL,
tytul VARCHAR(200) NOT NULL,
autor1 VARCHAR(100) NOT NULL,
autor2 VARCHAR(100) NULL,
rok_wydania INTEGER NOT NULL,
CONSTRAINT ksiazka_pkey PRIMARY KEY (id_ks),
CONSTRAINT fk_ksiazka_status_ksiazki FOREIGN KEY (status_ks)
REFERENCES status_ksiazki (id_s_k),
CONSTRAINT fk_ksiazka_kategoria FOREIGN KEY (kategoria_k)
REFERENCES kategoria (id_ka)
);
CREATE TABLE wypozyczenia
(
id_w SERIAL NOT NULL,
pesel_w INTEGER NOT NULL,
ksiazka_w INTEGER NOT NULL,
data_zarezerwowania DATE NOT NULL,
data_odebrania TIMESTAMP(2) WITHOUT TIME ZONE NOT NULL,
data_zwrotu TIMESTAMP(2) WITHOUT TIME ZONE NOT NULL,
termin_zwrotu TIMESTAMP(2) WITHOUT TIME ZONE NOT NULL,
status_zwrotu_w INTEGER NOT NULL,
CONSTRAINT wypozyczenia_pkey PRIMARY KEY (id_w),
CONSTRAINT fk_wypozyczenia_czytelnik FOREIGN KEY (pesel_w)
REFERENCES czytelnik (id_cz),
CONSTRAINT fk_wypozyczenia_ksiazka FOREIGN KEY (ksiazka_w)
REFERENCES ksiazka (id_ks),
CONSTRAINT fk_wypozyczenia_zwrot FOREIGN KEY (status_zwrotu_w)
REFERENCES zwrot (id_z)
);