Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Релационата база е дефинирана преку следните релации:
- Korisnik(k_ime, ime, prezime, tip, pretplata, datum_reg, tel_broj, email)
- Premium_korisnik(k_ime*, datum, procent_popust)
- Profil(k_ime*, ime, datum)
- Video_zapis(naslov, jazik, vremetraenje, datum_d, datum_p)
- Video_zapis_zanr(naslov*, zanr)
- Lista_zelbi(naslov*, k_ime*, ime*)
- Preporaka(ID, k_ime_od*, k_ime_na*, naslov*, datum, komentar, ocena)
- 1) Доколку јазикот на видео записот не е наведен, треба да се пополни со
- предефинирана вредност ‘English’
- 2) Доколку процентот на попуст на премиум корисниците не е наведен,
- треба да се пополни со предефинирана вредност од 20 проценти
- 3) Полето за чување на телефонскиот број на корисникот потребно е да
- биде со максимална големина од 12 карактери
- 4) Коментар при препорака мора да биде внесен при што не смее да
- надмине големина од 250 карактери
- 5) Датумот на достапност на видео запис не може да биде пред датумот на
- премиера
- 6) Оцената на препораката мора да биде од 1 до 5
- 7) Доколку некој видео запис се избрише од системот, препораките за тој
- запис треба да останат зачувани во базата на податови со
- предефинирана вредност за наслов на записот 'Deleted'
- 8) При промена или бришење на корисникот, промената треба да се
- проследи и до табелата со премиум корисници.
- 9) Валидни препораки кои се внесуваат во базата мора да се по
- започнување на системот за стриминг на 7ми декември 2022 година
- 10) Регистрацијата на корисници во системот е дозволена од почеток на
- 2023 година до крајот на 2024 година
- */
- CREATE TABLE Korisnik(
- k_ime TEXT PRIMARY KEY,
- ime TEXT,
- prezime TEXT,
- tip TEXT,
- pretplata TEXT,
- datum_reg DATE,
- tel_broj VARCHAR(12),
- email TEXT,
- CONSTRAINT datum_reg_check CHECK (datum_reg>='2023-01-01' AND datum_reg<='2024-12-31'),
- --CONSTRAINT tel_broj_max CHECK (tel_broj != '____________%')
- );
- CREATE TABLE Premium_korisnik(
- k_ime TEXT PRIMARY KEY,
- datum DATE,
- procent_popust INT DEFAULT 20,
- FOREIGN KEY (k_ime) REFERENCES Korisnik (k_ime) ON DELETE SET NULL ON UPDATE SET NULL
- );
- CREATE TABLE Profil(
- k_ime TEXT,
- ime TEXT,
- datum DATE,
- PRIMARY KEY (k_ime,ime),
- FOREIGN KEY (k_ime) REFERENCES Korisnik (k_ime) ON DELETE CASCADE ON UPDATE CASCADE
- );
- CREATE TABLE Video_zapis(
- naslov TEXT PRIMARY KEY DEFAULT 'Deleted',
- jazik TEXT DEFAULT 'English',
- vremetraenje INT,
- datum_d DATE,
- datum_p DATE,
- CONSTRAINT datum_check CHECK (datum_d>=datum_p)
- );
- CREATE TABLE Video_zapis_zanr(
- naslov TEXT,
- zanr TEXT,
- PRIMARY KEY (naslov,zanr),
- FOREIGN KEY (naslov) REFERENCES Video_zapis (naslov) ON DELETE CASCADE ON UPDATE CASCADE
- );
- CREATE TABLE Lista_zelbi(
- --ID TEXT PRIMARY KEY,
- naslov TEXT,
- k_ime TEXT,
- ime TEXT,
- PRIMARY KEY(naslov,k_ime,ime),
- FOREIGN KEY (k_ime,ime) REFERENCES Profil (k_ime,ime) ON DELETE CASCADE ON UPDATE CASCADE,
- FOREIGN KEY (naslov) REFERENCES Video_zapis (naslov) ON DELETE CASCADE ON UPDATE CASCADE
- );
- CREATE TABLE Preporaka(
- ID TEXT PRIMARY KEY,
- k_ime_od TEXT,
- k_ime_na TEXT,
- naslov TEXT,
- datum DATE,
- komentar VARCHAR(250),
- ocena INT,
- FOREIGN KEY (k_ime_od) REFERENCES Korisnik (k_ime) ON DELETE CASCADE ON UPDATE CASCADE,
- FOREIGN KEY (k_ime_na) REFERENCES Korisnik (k_ime) ON DELETE CASCADE ON UPDATE CASCADE,
- FOREIGN KEY (naslov) REFERENCES Video_zapis (naslov) ON DELETE SET DEFAULT ON UPDATE CASCADE,
- CONSTRAINT ocena_values (ocena IN (1,2,3,4,5)),
- CONSTRAINT datum_preporaka_check CHECK (datum>'2022-12-07'),
- --CONSTRAINT komentar_vnes CHECK (komentar!='')
- --CONSTRAINT komentar_length CHECK (komentar!='__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________%')
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement