| 1 | DROP SCHEMA IF EXISTS project CASCADE;
|
|---|
| 2 | CREATE SCHEMA project;
|
|---|
| 3 | SET search_path TO project;
|
|---|
| 4 |
|
|---|
| 5 | CREATE TABLE KORISNICI (
|
|---|
| 6 | korisnik_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|---|
| 7 | ime VARCHAR(100) NOT NULL,
|
|---|
| 8 | prezime VARCHAR(100) NOT NULL,
|
|---|
| 9 | email VARCHAR(255) NOT NULL UNIQUE,
|
|---|
| 10 | lozinka VARCHAR(255) NOT NULL,
|
|---|
| 11 | datum_registracija DATE NOT NULL,
|
|---|
| 12 | uloga VARCHAR(20) NOT NULL
|
|---|
| 13 | );
|
|---|
| 14 |
|
|---|
| 15 | CREATE TABLE KNIGI (
|
|---|
| 16 | kniga_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|---|
| 17 | naslov VARCHAR(255) NOT NULL,
|
|---|
| 18 | isbn VARCHAR(20) NOT NULL UNIQUE,
|
|---|
| 19 | opis TEXT,
|
|---|
| 20 | korica_url TEXT,
|
|---|
| 21 | godina_izdavanje SMALLINT,
|
|---|
| 22 | kolicina_na_zaliha INTEGER NOT NULL,
|
|---|
| 23 | cena NUMERIC(10,2) NOT NULL
|
|---|
| 24 | );
|
|---|
| 25 |
|
|---|
| 26 | CREATE TABLE AVTORI (
|
|---|
| 27 | avtor_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|---|
| 28 | ime VARCHAR(100) NOT NULL,
|
|---|
| 29 | prezime VARCHAR(100) NOT NULL,
|
|---|
| 30 | biografija TEXT
|
|---|
| 31 | );
|
|---|
| 32 |
|
|---|
| 33 | CREATE TABLE ZHANROVI (
|
|---|
| 34 | zhanr_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|---|
| 35 | naziv VARCHAR(100) NOT NULL,
|
|---|
| 36 | opis TEXT
|
|---|
| 37 | );
|
|---|
| 38 |
|
|---|
| 39 | CREATE TABLE KATEGORII (
|
|---|
| 40 | kategorija_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|---|
| 41 | naziv VARCHAR(100) NOT NULL,
|
|---|
| 42 | opis TEXT
|
|---|
| 43 | );
|
|---|
| 44 |
|
|---|
| 45 | CREATE TABLE RASPOLOZENIJA (
|
|---|
| 46 | raspolozenie_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|---|
| 47 | naziv VARCHAR(100) NOT NULL,
|
|---|
| 48 | opis TEXT
|
|---|
| 49 | );
|
|---|
| 50 |
|
|---|
| 51 | CREATE TABLE NARACKI (
|
|---|
| 52 | naracka_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|---|
| 53 | datum TIMESTAMP NOT NULL,
|
|---|
| 54 | status VARCHAR(30) NOT NULL,
|
|---|
| 55 | vkupna_cena NUMERIC(10,2) NOT NULL,
|
|---|
| 56 | korisnik_id BIGINT NOT NULL,
|
|---|
| 57 | FOREIGN KEY (korisnik_id) REFERENCES KORISNICI(korisnik_id)
|
|---|
| 58 | );
|
|---|
| 59 |
|
|---|
| 60 | CREATE TABLE PLAKANJA (
|
|---|
| 61 | plakjanje_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|---|
| 62 | datum TIMESTAMP NOT NULL,
|
|---|
| 63 | iznos NUMERIC(10,2) NOT NULL,
|
|---|
| 64 | nacin_na_plakjanje VARCHAR(50) NOT NULL,
|
|---|
| 65 | status VARCHAR(30) NOT NULL,
|
|---|
| 66 | naracka_id BIGINT NOT NULL UNIQUE,
|
|---|
| 67 | FOREIGN KEY (naracka_id) REFERENCES NARACKI(naracka_id)
|
|---|
| 68 | );
|
|---|
| 69 |
|
|---|
| 70 | CREATE TABLE SODRZI (
|
|---|
| 71 | naracka_id BIGINT NOT NULL,
|
|---|
| 72 | kniga_id BIGINT NOT NULL,
|
|---|
| 73 | kolicina INTEGER NOT NULL,
|
|---|
| 74 | edinechna_cena NUMERIC(10,2) NOT NULL,
|
|---|
| 75 | PRIMARY KEY (naracka_id, kniga_id),
|
|---|
| 76 | FOREIGN KEY (naracka_id) REFERENCES NARACKI(naracka_id),
|
|---|
| 77 | FOREIGN KEY (kniga_id) REFERENCES KNIGI(kniga_id)
|
|---|
| 78 | );
|
|---|
| 79 |
|
|---|
| 80 | CREATE TABLE NAPISANA_OD (
|
|---|
| 81 | kniga_id BIGINT NOT NULL,
|
|---|
| 82 | avtor_id BIGINT NOT NULL,
|
|---|
| 83 | PRIMARY KEY (kniga_id, avtor_id),
|
|---|
| 84 | FOREIGN KEY (kniga_id) REFERENCES KNIGI(kniga_id),
|
|---|
| 85 | FOREIGN KEY (avtor_id) REFERENCES AVTORI(avtor_id)
|
|---|
| 86 | );
|
|---|
| 87 |
|
|---|
| 88 | CREATE TABLE IMA_ZHANR (
|
|---|
| 89 | kniga_id BIGINT NOT NULL,
|
|---|
| 90 | zhanr_id BIGINT NOT NULL,
|
|---|
| 91 | PRIMARY KEY (kniga_id, zhanr_id),
|
|---|
| 92 | FOREIGN KEY (kniga_id) REFERENCES KNIGI(kniga_id),
|
|---|
| 93 | FOREIGN KEY (zhanr_id) REFERENCES ZHANROVI(zhanr_id)
|
|---|
| 94 | );
|
|---|
| 95 |
|
|---|
| 96 | CREATE TABLE IMA_KATEGORIJA (
|
|---|
| 97 | kniga_id BIGINT NOT NULL,
|
|---|
| 98 | kategorija_id BIGINT NOT NULL,
|
|---|
| 99 | PRIMARY KEY (kniga_id, kategorija_id),
|
|---|
| 100 | FOREIGN KEY (kniga_id) REFERENCES KNIGI(kniga_id),
|
|---|
| 101 | FOREIGN KEY (kategorija_id) REFERENCES KATEGORII(kategorija_id)
|
|---|
| 102 | );
|
|---|
| 103 |
|
|---|
| 104 | CREATE TABLE POVRZANA_SO (
|
|---|
| 105 | kniga_id BIGINT NOT NULL,
|
|---|
| 106 | raspolozenie_id BIGINT NOT NULL,
|
|---|
| 107 | PRIMARY KEY (kniga_id, raspolozenie_id),
|
|---|
| 108 | FOREIGN KEY (kniga_id) REFERENCES KNIGI(kniga_id),
|
|---|
| 109 | FOREIGN KEY (raspolozenie_id) REFERENCES RASPOLOZENIJA(raspolozenie_id)
|
|---|
| 110 | );
|
|---|
| 111 |
|
|---|
| 112 | CREATE TABLE OMILENI (
|
|---|
| 113 | korisnik_id BIGINT NOT NULL,
|
|---|
| 114 | kniga_id BIGINT NOT NULL,
|
|---|
| 115 | datum_dodavanje DATE NOT NULL,
|
|---|
| 116 | PRIMARY KEY (korisnik_id, kniga_id),
|
|---|
| 117 | FOREIGN KEY (korisnik_id) REFERENCES KORISNICI(korisnik_id),
|
|---|
| 118 | FOREIGN KEY (kniga_id) REFERENCES KNIGI(kniga_id)
|
|---|
| 119 | );
|
|---|
| 120 |
|
|---|
| 121 | CREATE TABLE PREFERIRA_ZHANR (
|
|---|
| 122 | korisnik_id BIGINT NOT NULL,
|
|---|
| 123 | zhanr_id BIGINT NOT NULL,
|
|---|
| 124 | datum_dodavanje DATE NOT NULL,
|
|---|
| 125 | PRIMARY KEY (korisnik_id, zhanr_id),
|
|---|
| 126 | FOREIGN KEY (korisnik_id) REFERENCES KORISNICI(korisnik_id),
|
|---|
| 127 | FOREIGN KEY (zhanr_id) REFERENCES ZHANROVI(zhanr_id)
|
|---|
| 128 | );
|
|---|
| 129 |
|
|---|
| 130 | CREATE TABLE PREFERIRA_KATEGORIJA (
|
|---|
| 131 | korisnik_id BIGINT NOT NULL,
|
|---|
| 132 | kategorija_id BIGINT NOT NULL,
|
|---|
| 133 | datum_dodavanje DATE NOT NULL,
|
|---|
| 134 | PRIMARY KEY (korisnik_id, kategorija_id),
|
|---|
| 135 | FOREIGN KEY (korisnik_id) REFERENCES KORISNICI(korisnik_id),
|
|---|
| 136 | FOREIGN KEY (kategorija_id) REFERENCES KATEGORII(kategorija_id)
|
|---|
| 137 | );
|
|---|
| 138 |
|
|---|
| 139 | CREATE TABLE IZBIRA_RASPOLOZENIE (
|
|---|
| 140 | korisnik_id BIGINT NOT NULL,
|
|---|
| 141 | raspolozenie_id BIGINT NOT NULL,
|
|---|
| 142 | datum_izbor DATE NOT NULL,
|
|---|
| 143 | PRIMARY KEY (korisnik_id, raspolozenie_id),
|
|---|
| 144 | FOREIGN KEY (korisnik_id) REFERENCES KORISNICI(korisnik_id),
|
|---|
| 145 | FOREIGN KEY (raspolozenie_id) REFERENCES RASPOLOZENIJA(raspolozenie_id)
|
|---|
| 146 | );
|
|---|