Advertisement
1cutcut1

bazi

Dec 10th, 2024
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.56 KB | None | 0 0
  1. БАЗИ – В
  2. create table Korisnik(
  3. k_ime VARCHAR(255),
  4. ime VARCHAR(255),
  5. prezime VARCHAR(255),
  6. tip VARCHAR(255),
  7. pretplata INT,
  8. datum_reg DATE,
  9. tel_broj VARCHAR(12),
  10. email VARCHAR(255),
  11. PRIMARY KEY (k_ime),
  12. CONSTRAINT ck_check_datumReg CHECK ( datum_reg BETWEEN '2023-01-01' AND '2024-12-31')
  13. );
  14.  
  15. create table Premium_korisnik(
  16. k_ime VARCHAR(255),
  17. datum DATE,
  18. procent_popust INT DEFAULT '20',
  19. PRIMARY KEY (k_ime),
  20. FOREIGN KEY (k_ime) REFERENCES Korisnik(k_ime) ON DELETE CASCADE ON UPDATE CASCADE
  21. --ova si e spored pravilo
  22. );
  23.  
  24. create table Profil(
  25. k_ime VARCHAR(255),
  26. datum DATE,
  27. ime VARCHAR(255),
  28. PRIMARY KEY (ime,k_ime),
  29. FOREIGN KEY (k_ime) REFERENCES Korisnik(k_ime) ON DELETE CASCADE ON UPDATE CASCADE
  30. );
  31.  
  32. create table Video_zapis(
  33. naslov VARCHAR(255),
  34. jazik VARCHAR(255) DEFAULT 'English',
  35. vremetraenje INT,
  36. datum_d DATE,
  37. datum_p DATE,
  38. PRIMARY KEY (naslov),
  39. CONSTRAINT ck_check_datum CHECK ( datum_d >= datum_p )
  40.  
  41. );
  42.  
  43. create table Video_zapis_zanr(
  44. naslov VARCHAR(255),
  45. zanr VARCHAR(255),
  46. PRIMARY KEY (naslov,zanr),
  47. FOREIGN KEY (naslov) REFERENCES Video_zapis(naslov) ON DELETE CASCADE ON UPDATE CASCADE
  48. );
  49.  
  50. create table Lista_zelbi(
  51. naslov VARCHAR(255),
  52. k_ime VARCHAR(255),
  53. ime VARCHAR(255),
  54. PRIMARY KEY (naslov,k_ime,ime),
  55. FOREIGN KEY (naslov) REFERENCES Video_zapis(naslov) ON DELETE CASCADE ON UPDATE CASCADE,
  56. FOREIGN KEY (k_ime) REFERENCES Korisnik(k_ime) ON DELETE CASCADE ON UPDATE CASCADE,
  57. FOREIGN KEY (ime) REFERENCES Profil(ime) ON DELETE CASCADE ON UPDATE CASCADE
  58. );
  59.  
  60. create table Preporaka(
  61. ID INT,
  62. k_ime_od VARCHAR(255),
  63. k_ime_na VARCHAR(255),
  64. naslov VARCHAR(255) DEFAULT 'Deleted',
  65. datum DATE,
  66. komentar VARCHAR(250),
  67. ocena INT,
  68. PRIMARY KEY (ID),
  69. FOREIGN KEY (k_ime_od) REFERENCES Korisnik(k_ime) ON DELETE CASCADE ON UPDATE CASCADE,
  70. FOREIGN KEY (k_ime_na) REFERENCES Korisnik(k_ime) ON DELETE CASCADE ON UPDATE CASCADE,
  71. FOREIGN KEY (naslov) REFERENCES Video_zapis(naslov) ON DELETE SET DEFAULT,
  72. CONSTRAINT ck_check_ocena CHECK ( ocena>=1 AND ocena<=5),
  73. CONSTRAINT ck_check_datum CHECK ( datum >='2022-12-07' )
  74. );
  75.  
  76. -----------------------------------------------------------------------------------------------------------------------------------
  77. dis
  78.  
  79. CREATE TABLE Korisnik(
  80. k_ime TEXT PRIMARY KEY,
  81. ime TEXT,
  82. prezime TEXT,
  83. tip TEXT,
  84. pretplata TEXT,
  85. datum_reg DATE,
  86. tel_broj VARCHAR(12),
  87. email TEXT,
  88. CONSTRAINT datum_reg_check CHECK (datum_reg>='2023-01-01' OR datum_reg<='2024-12-31'),
  89. --CONSTRAINT tel_broj_max CHECK (tel_broj != '____________%')
  90. );
  91. CREATE TABLE Premium_korisnik(
  92. k_ime TEXT PRIMARY KEY,
  93. datum DATE,
  94. procent_popust INT DEFAULT 20,
  95. FOREIGN KEY (k_ime) REFERENCES Korisnik (k_ime) ON DELETE SET NULL ON UPDATE SET NULL
  96. );
  97. CREATE TABLE Profil(
  98. k_ime TEXT,
  99. ime TEXT,
  100. datum DATE,
  101. PRIMARY KEY (k_ime,ime),
  102. FOREIGN KEY (k_ime) REFERENCES Korisnik (k_ime) ON DELETE CASCADE ON UPDATE CASCADE
  103. );
  104. CREATE TABLE Video_zapis(
  105. naslov TEXT PRIMARY KEY DEFAULT 'Deleted',
  106. jazik TEXT DEFAULT 'English',
  107. vremetraenje INT,
  108. datum_d DATE,
  109. datum_p DATE,
  110. CONSTRAINT datum_check CHECK (datum_d<datum_p)
  111. );
  112. CREATE TABLE Video_zapis_zanr(
  113. naslov TEXT,
  114. zanr TEXT,
  115. PRIMARY KEY (naslov,zanr),
  116. FOREIGN KEY (naslov) REFERENCES Video_zapis (naslov) ON DELETE CASCADE ON UPDATE CASCADE
  117. );
  118. CREATE TABLE Lista_zelbi(
  119. --ID TEXT PRIMARY KEY,
  120. naslov TEXT,
  121. k_ime TEXT,
  122. ime TEXT,
  123. PRIMARY KEY(naslov,k_ime,ime),
  124. FOREIGN KEY (k_ime,ime) REFERENCES Profil (k_ime,ime) ON DELETE CASCADE ON UPDATE CASCADE,
  125. FOREIGN KEY (naslov) REFERENCES Video_zapis (naslov) ON DELETE CASCADE ON UPDATE CASCADE
  126. );
  127. CREATE TABLE Preporaka(
  128. ID TEXT PRIMARY KEY,
  129. k_ime_od TEXT,
  130. k_ime_na TEXT,
  131. naslov TEXT,
  132. datum DATE,
  133. komentar VARCHAR(250),
  134. ocena INT,
  135. FOREIGN KEY (k_ime_od) REFERENCES Korisnik (k_ime) ON DELETE CASCADE ON UPDATE CASCADE,
  136. FOREIGN KEY (k_ime_na) REFERENCES Korisnik (k_ime) ON DELETE CASCADE ON UPDATE CASCADE,
  137. FOREIGN KEY (naslov) REFERENCES Video_zapis (naslov) ON DELETE SET DEFAULT ON UPDATE CASCADE,
  138. CONSTRAINT ocena_values (ocena IN (1,2,3,4,5)),
  139. CONSTRAINT datum_preporaka_check CHECK (datum>'2022-12-07'),
  140. CONSTRAINT komentar_vnes CHECK (komentar!='')
  141. );
  142. ------------------------------------------------------------------------------------------------------------------------------------
  143. CREATE TABLE Korisnik(
  144. k_ime VARCHAR(20) PRIMARY KEY,
  145. ime VARCHAR(20),
  146. prezime VARCHAR(20),
  147. tip VARCHAR(20), ---?
  148. pretplata INT,
  149. datum_reg DATE,
  150. tel_broj VARCHAR(12),
  151. email VARCHAR(30),
  152. CONSTRAINT CH_datum_reg CHECK ( datum_reg BETWEEN '2023-01-01' AND '2024-12-31')
  153. );
  154.  
  155. CREATE TABLE Premium_korisnik(
  156. k_ime VARCHAR(20) PRIMARY KEY REFERENCES Korisnik(k_ime) ON DELETE CASCADE ON UPDATE CASCADE,
  157. datum DATE,
  158. procent_popust FLOAT DEFAULT 20.0
  159. );
  160.  
  161. CREATE TABLE Profil(
  162. k_ime VARCHAR(20) REFERENCES Korisnik(k_ime) ON DELETE CASCADE ON UPDATE CASCADE,
  163. ime VARCHAR(20),
  164. datum DATE,
  165. CONSTRAINT PK PRIMARY KEY (k_ime,ime)
  166. );
  167.  
  168. CREATE TABLE Video_zapis(
  169. naslov VARCHAR(50) PRIMARY KEY,
  170. jazik VARCHAR(20) DEFAULT 'English',
  171. vremetraenje INT,
  172. datum_d DATE,
  173. datum_p DATE,
  174. CONSTRAINT CH_datum CHECK (datum_d > datum_p)
  175. );
  176.  
  177. CREATE TABLE Video_zapis_zanr(
  178. naslov VARCHAR(50) REFERENCES Video_zapis(naslov) ON DELETE CASCADE ON UPDATE CASCADE,
  179. zanr VARCHAR(20),
  180. CONSTRAINT PK PRIMARY KEY (naslov, zanr)
  181. );
  182.  
  183. CREATE TABLE Lista_zelbi(
  184. naslov VARCHAR(50) REFERENCES Video_zapis_zanr(naslov) ON DELETE CASCADE ON UPDATE CASCADE,
  185. k_ime VARCHAR(20),
  186. ime VARCHAR(20),
  187. CONSTRAINT PK PRIMARY KEY (naslov, k_ime, ime),
  188. CONSTRAINT FK_lz_k FOREIGN KEY (k_ime,ime) REFERENCES Profil(k_ime,ime) ON DELETE CASCADE ON UPDATE CASCADE
  189.  
  190. );
  191.  
  192. CREATE TABLE Preporaka(
  193. ID INT PRIMARY KEY,
  194. k_ime_od VARCHAR(20) REFERENCES Korisnik(k_ime) ON DELETE CASCADE ON UPDATE CASCADE,
  195. k_ime_na VARCHAR(20) REFERENCES Korisnik(k_ime) ON DELETE CASCADE ON UPDATE CASCADE,
  196. naslov VARCHAR(50) DEFAULT 'Deleted' REFERENCES Video_zapis(naslov) ON DELETE SET DEFAULT ON UPDATE CASCADE,
  197. datum DATE,
  198. komentar VARCHAR(250) NOT NULL,
  199. ocena INT,
  200. CONSTRAINT CH_ocena CHECK (ocena BETWEEN 1 AND 5),
  201. CONSTRAINT CH_datum CHECK (datum > '2022-12-7')
  202. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement