Advertisement
1cutcut1

dopolnitelno_bazi

Dec 10th, 2024
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.93 KB | None | 0 0
  1. MUZICAR (osnoven kod)
  2. create table Muzicar(
  3. id INT,
  4. ime VARCHAR(255),
  5. prezime VARCHAR(255),
  6. datum_raganje DATE,
  7. PRIMARY KEY (id)
  8. );
  9.  
  10. create table Muzicar_instrument(
  11. id_muzicar INT,
  12. instrument VARCHAR(255),
  13. PRIMARY KEY (id_muzicar, instrument),
  14. FOREIGN KEY (id_muzicar) references Muzicar(id)
  15. );
  16.  
  17. create table Bend(
  18. id INT,
  19. ime VARCHAR(255),
  20. godina_osnovanje DATE,
  21. PRIMARY KEY (id)
  22. );
  23.  
  24. create table Bend_znar(
  25. id_bend INT,
  26. zanr VARCHAR(255),
  27. PRIMARY KEY (id_bend,zanr),
  28. FOREIGN KEY (id_bend) references Bend(id)
  29. );
  30.  
  31. create table Nastan(
  32. id INT,
  33. cena INT,
  34. kapacitet INT,
  35. PRIMARY KEY (id)
  36. );
  37.  
  38. create table Koncert(
  39. id INT,
  40. datum DATE,
  41. vreme TIME,
  42. --valjda mozhe i int
  43. PRIMARY KEY (id),
  44. FOREIGN KEY (id) references Nastan(id)
  45. );
  46.  
  47. create table Festival(
  48. id INT,
  49. ime VARCHAR(255),
  50. PRIMARY KEY (id),
  51. FOREIGN KEY (id) references Nastan(id)
  52. );
  53.  
  54. create table Festival_odrzuvanje(
  55. id INT,
  56. datum_od DATE,
  57. datum_do DATE,
  58. PRIMARY KEY (id,datum_od),
  59. FOREIGN KEY (id) references Festival(id)
  60. );
  61.  
  62. create table Muzicar_bend(
  63. id_muzicar INT,
  64. id_bend INT,
  65. datum_napustanje DATE,
  66. PRIMARY KEY (id_muzicar,id_bend),
  67. FOREIGN KEY (id_muzicar) references Muzicar(id),
  68. FOREIGN KEY (id_bend) REFERENCES Bend(id)
  69. );
  70.  
  71. create table Ucestvo_festival(
  72. id_festival INT,
  73. datum_od DATE,
  74. id_bend INT,
  75. den VARCHAR(255),
  76. vremetraenje_nastap INT,
  77. plata_nastap INT,
  78. PRIMARY KEY (id_festival,datum_od,id_bend),
  79. FOREIGN KEY (id_festival) REFERENCES Festival_odrzuvanje(id),
  80. FOREIGN KEY (datum_od) REFERENCES Festival_odrzuvanje(datum_od),
  81. FOREIGN KEY (id_bend) REFERENCES Bend(id)
  82. );
  83.  
  84. create table Ucestvo_koncert(
  85. id_koncert INT,
  86. id_muzicar INT,
  87. id_bend INT,
  88. PRIMARY KEY (id_koncert,id_muzicar,id_bend),
  89. FOREIGN KEY (id_koncert) references Koncert(id),
  90. FOREIGN KEY (id_muzicar) references Muzicar(id),
  91. FOREIGN KEY (id_bend) references Bend(id)
  92. );
  93. ---------------------------------------------------------------------------------------------------------------------------------
  94. GPT
  95. create table Muzicar(
  96. id INT,
  97. ime VARCHAR(255),
  98. prezime VARCHAR(255),
  99. datum_raganje DATE,
  100. PRIMARY KEY (id)
  101. );
  102.  
  103. create table Muzicar_instrument(
  104. id_muzicar INT,
  105. instrument VARCHAR(255),
  106. PRIMARY KEY (id_muzicar, instrument),
  107. FOREIGN KEY (id_muzicar) references Muzicar(id)
  108. );
  109.  
  110. create table Bend(
  111. id INT,
  112. ime VARCHAR(255),
  113. godina_osnovanje DATE,
  114. PRIMARY KEY (id)
  115. );
  116.  
  117. create table Bend_znar(
  118. id_bend INT,
  119. zanr VARCHAR(255),
  120. PRIMARY KEY (id_bend, zanr),
  121. FOREIGN KEY (id_bend) references Bend(id)
  122. );
  123.  
  124. create table Nastan(
  125. id INT,
  126. cena INT,
  127. kapacitet INT,
  128. PRIMARY KEY (id)
  129. );
  130.  
  131. create table Koncert(
  132. id INT,
  133. datum DATE,
  134. vreme TIME,
  135. PRIMARY KEY (id),
  136. FOREIGN KEY (id) references Nastan(id)
  137. );
  138.  
  139. create table Festival(
  140. id INT,
  141. ime VARCHAR(255),
  142. PRIMARY KEY (id),
  143. FOREIGN KEY (id) references Nastan(id)
  144. );
  145.  
  146. create table Festival_odrzuvanje(
  147. id INT,
  148. datum_od DATE,
  149. datum_do DATE,
  150. PRIMARY KEY (id, datum_od),
  151. FOREIGN KEY (id) references Festival(id)
  152. );
  153.  
  154. create table Muzicar_bend(
  155. id_muzicar INT,
  156. id_bend INT,
  157. datum_napustanje DATE,
  158. PRIMARY KEY (id_muzicar, id_bend),
  159. FOREIGN KEY (id_muzicar) references Muzicar(id),
  160. FOREIGN KEY (id_bend) REFERENCES Bend(id)
  161. );
  162.  
  163. create table Ucestvo_festival(
  164. id_festival INT,
  165. datum_od DATE,
  166. id_bend INT,
  167. den VARCHAR(255),
  168. vremetraenje_nastap INT,
  169. plata_nastap INT,
  170. PRIMARY KEY (id_festival, datum_od, id_bend),
  171. FOREIGN KEY (id_festival) REFERENCES Festival_odrzuvanje(id),
  172. FOREIGN KEY (id_bend) REFERENCES Bend(id)
  173. );
  174.  
  175. create table Ucestvo_koncert(
  176. id_koncert INT,
  177. id_muzicar INT,
  178. id_bend INT,
  179. PRIMARY KEY (id_koncert, id_muzicar, id_bend),
  180. FOREIGN KEY (id_koncert) references Koncert(id),
  181. FOREIGN KEY (id_muzicar) references Muzicar(id),
  182. FOREIGN KEY (id_bend) references Bend(id)
  183. );
  184. ----------------------------------------------------------------------------------------------------------------------------
  185. DOPLINTELNI BARANJA:
  186. • Инструментите што ги свират музичарите мора да бидат еден од 'guitar', 'bass', 'drums', 'keyboards' или 'vocals'
  187. ---------------------------
  188. create table Muzicar_instrument(
  189. id_muzicar INT,
  190. instrument VARCHAR(255),
  191. PRIMARY KEY (id_muzicar,instrument),
  192. FOREIGN KEY (id_muzicar) references Muzicar(id),
  193. CONSTRAINT ck_check_instrument CHECK ( instrument IN ('guitar','bass','drums', 'keyboards','vocals'))
  194. );
  195. ---------------------------
  196. · Доколку не е внесен денот на настап на бенд на некој фестивал, треба да се пополни предефинирана вредност 1
  197. ---------------------------
  198. create table Ucestvo_festival(
  199. id_festival INT,
  200. datum_od DATE,
  201. id_bend INT,
  202. den VARCHAR(255) DEFAULT '1',
  203. vremetraenje_nastap INT,
  204. plata_nastap INT,
  205. PRIMARY KEY (id_festival,datum_od,id_bend),
  206. FOREIGN KEY (id_festival) REFERENCES Festival_odrzuvanje(id),
  207. FOREIGN KEY (datum_od) REFERENCES Festival_odrzuvanje(datum_od),
  208. FOREIGN KEY (id_bend) REFERENCES Bend(id)
  209. );
  210. ---------------------------
  211. · При внесување на концерт во базата на податоци, задолжително е датумот а биде внесен.
  212. ---------------------------
  213. create table Koncert(
  214. id INT ,
  215. datum DATE NOT NULL,
  216. vreme INT,
  217. --тука не мора not null, дека битно е да земее кога е закажан концертот
  218. --може да е и TIME
  219. PRIMARY KEY (id),
  220. FOREIGN KEY (id) references Nastan(id)
  221. );
  222. ---------------------------
  223. · Промените и бришењето на музичари треба да бидат проследени и во табелата за чување на инструменти на музичари.
  224. ---------------------------
  225. create table Muzicar_instrument(
  226. id_muzicar INT,
  227. instrument VARCHAR(255),
  228. PRIMARY KEY (id_muzicar,instrument),
  229. FOREIGN KEY (id_muzicar) references Muzicar(id) ON DELETE CASCADE ON UPDATE CASCADE ,
  230. CONSTRAINT ck_check_instrument CHECK ( instrument IN ('guitar','bass','drums', 'keyboards','vocals'))
  231. );
  232. ---------------------------
  233. · Во базата се чуваат информации само за музичари родени пред 2005 година
  234. --------------------------
  235. create table Muzicar(
  236. id INT,
  237. ime VARCHAR(255),
  238. prezime VARCHAR(255),
  239. datum_raganje DATE,
  240. PRIMARY KEY (id),
  241. CONSTRAINT ck_check_datum CHECK ( datum_raganje < '2005-01-01' )
  242. );
  243. --------------------------
  244. FINALNA
  245.  
  246. create table Muzicar(
  247. id INT,
  248. ime VARCHAR(255),
  249. prezime VARCHAR(255),
  250. datum_raganje DATE,
  251. PRIMARY KEY (id),
  252. CONSTRAINT ck_check_datum CHECK ( datum_raganje < '2005-01-01' )
  253. );
  254.  
  255. create table Muzicar_instrument(
  256. id_muzicar INT,
  257. instrument VARCHAR(255),
  258. PRIMARY KEY (id_muzicar,instrument),
  259. FOREIGN KEY (id_muzicar) references Muzicar(id) ON DELETE CASCADE ON UPDATE CASCADE ,
  260. --spored pravilo
  261. CONSTRAINT ck_check_instrument CHECK ( instrument IN ('guitar','bass','drums', 'keyboards','vocals'))
  262. );
  263.  
  264. create table Bend(
  265. id INT,
  266. ime VARCHAR(255),
  267. godina_osnovanje DATE,
  268. PRIMARY KEY (id)
  269. );
  270.  
  271. create table Bend_znar(
  272. id_bend INT,
  273. zanr VARCHAR(255),
  274. PRIMARY KEY (id_bend,zanr),
  275. FOREIGN KEY (id_bend) references Bend(id) ON DELETE SET NULL ON UPDATE CASCADE
  276. );
  277.  
  278. create table Nastan(
  279. id INT,
  280. cena INT,
  281. kapacitet INT,
  282. PRIMARY KEY (id)
  283. );
  284.  
  285. create table Koncert(
  286. id INT ,
  287. datum DATE NOT NULL,
  288. vreme INT,
  289. --тука не мора not null, дека битно е да земее кога е закажан концертот
  290. --може да е и TIME
  291. PRIMARY KEY (id),
  292. FOREIGN KEY (id) references Nastan(id) ON DELETE SET NULL ON UPDATE CASCADE
  293. );
  294.  
  295. create table Festival(
  296. id INT,
  297. ime VARCHAR(255),
  298. PRIMARY KEY (id),
  299. FOREIGN KEY (id) references Nastan(id) ON DELETE SET NULL ON UPDATE CASCADE
  300. );
  301.  
  302. create table Festival_odrzuvanje(
  303. id INT,
  304. datum_od DATE,
  305. datum_do DATE,
  306. PRIMARY KEY (id,datum_od),
  307. FOREIGN KEY (id) references Festival(id) ON DELETE SET NULL ON UPDATE CASCADE
  308. );
  309.  
  310. create table Muzicar_bend(
  311. id_muzicar INT,
  312. id_bend INT,
  313. datum_napustanje DATE,
  314. PRIMARY KEY (id_muzicar,id_bend),
  315. FOREIGN KEY (id_muzicar) references Muzicar(id) ON DELETE SET NULL ON UPDATE CASCADE ,
  316. FOREIGN KEY (id_bend) REFERENCES Bend(id) ON DELETE SET NULL ON UPDATE CASCADE
  317. );
  318.  
  319. create table Ucestvo_festival(
  320. id_festival INT,
  321. datum_od DATE,
  322. id_bend INT,
  323. den VARCHAR(255) DEFAULT '1',
  324. vremetraenje_nastap INT,
  325. plata_nastap INT,
  326. PRIMARY KEY (id_festival,datum_od,id_bend),
  327. FOREIGN KEY (id_festival) REFERENCES Festival_odrzuvanje(id) ON DELETE SET NULL ON UPDATE CASCADE ,
  328. FOREIGN KEY (datum_od) REFERENCES Festival_odrzuvanje(datum_od) ON DELETE SET NULL ON UPDATE CASCADE ,
  329. FOREIGN KEY (id_bend) REFERENCES Bend(id)ON DELETE SET NULL ON UPDATE CASCADE
  330. );
  331.  
  332. create table Ucestvo_koncert(
  333. id_koncert INT,
  334. id_muzicar INT,
  335. id_bend INT,
  336. PRIMARY KEY (id_koncert,id_muzicar,id_bend),
  337. FOREIGN KEY (id_koncert) references Koncert(id)ON DELETE SET NULL ON UPDATE CASCADE ,
  338. FOREIGN KEY (id_muzicar) references Muzicar(id)ON DELETE SET NULL ON UPDATE CASCADE ,
  339. FOREIGN KEY (id_bend) references Bend(id)ON DELETE SET NULL ON UPDATE CASCADE
  340. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement