Facebook
From Mungo Pelican, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 137
  1. /*
  2. CREATED: 29.04.2020
  3. MODIFIED: 02.05.2020
  4. PROJECT: HURTOWNIA SPRZęTU ELEKTRONICZNEGO
  5. MODEL: HURTNIOWNIA
  6. AUTHOR: MICHAł STOLARSKI, MATEUSZ MARCINIAK
  7. DATABASE: ORACLE 12C
  8. */
  9.  
  10.  
  11. -- CREATE TABLES SECTION -------------------------------------------------
  12.  
  13. -- TABLE HURTOWNIE
  14.  
  15. CREATE TABLE HURTOWNIE(
  16.   ID_HURTOWNI INTEGER NOT NULL,
  17.   NAZWA VARCHAR2(30 ) NOT NULL,
  18.   ID_ADRESU INTEGER NOT NULL
  19. )
  20. /
  21.  
  22. -- CREATE INDEXES FOR TABLE HURTOWNIE
  23.  
  24. CREATE INDEX IX_RELATIONSHIP1 ON HURTOWNIE (ID_ADRESU)
  25. /
  26.  
  27. -- ADD KEYS FOR TABLE HURTOWNIE
  28.  
  29. ALTER TABLE HURTOWNIE ADD CONSTRAINT UNIQUE_IDENTIFIER1 PRIMARY KEY (ID_HURTOWNI)
  30. /
  31.  
  32. -- TABLE AND COLUMNS COMMENTS SECTION
  33.  
  34. COMMENT ON COLUMN HURTOWNIE.NAZWA IS 'NAZWA HURTOWNI'
  35. /
  36.  
  37. -- TABLE PRACOWNICY
  38.  
  39. CREATE TABLE PRACOWNICY(
  40.   ID_PRACOWNIKA INTEGER NOT NULL,
  41.   IMIE VARCHAR2(20 ) NOT NULL,
  42.   NAZWISKO VARCHAR2(30 ) NOT NULL,
  43.   NUMER_TELEFONU VARCHAR2(20 ) NOT NULL,
  44.   EMAIL VARCHAR2(30 ) NOT NULL,
  45.   PESEL CHAR(11 ),
  46.   DATA_URODZENIA DATE NOT NULL,
  47.   DATA_ZATRUDNIENIA DATE NOT NULL,
  48.   PLEC CHAR(1 ) NOT NULL
  49.         CHECK (PLEC IN ('K','M')),
  50.   STANOWISKO VARCHAR2(23 ) NOT NULL
  51.         CHECK (STANOWISKO IN ('MAGAZYNIER', 'KIEROWCA', 'PRZEDSTAWICIEL HANDLOWY', 'KSIEGOWY')),
  52.   ID_HURTOWNI INTEGER NOT NULL,
  53.   ID_ADRESU INTEGER NOT NULL
  54. )
  55. /
  56.  
  57. -- CREATE INDEXES FOR TABLE PRACOWNICY
  58.  
  59. CREATE INDEX IX_ZATRUDNIA ON PRACOWNICY (ID_HURTOWNI)
  60. /
  61.  
  62. CREATE INDEX IX_RELATIONSHIP2 ON PRACOWNICY (ID_ADRESU)
  63. /
  64.  
  65. -- ADD KEYS FOR TABLE PRACOWNICY
  66.  
  67. ALTER TABLE PRACOWNICY ADD CONSTRAINT UNIQUE_PRACOWNIK PRIMARY KEY (ID_PRACOWNIKA)
  68. /
  69.  
  70. -- TABLE WYNAGRODZENIA
  71.  
  72. CREATE TABLE WYNAGRODZENIA(
  73.   ID_WYNAGRODZENIA INTEGER NOT NULL,
  74.   DATA_WYNAGRODZENIA DATE NOT NULL,
  75.   STAWKA NUMBER(10,2) NOT NULL,
  76.   SPOSOB_WYNAGRODZENIA VARCHAR2(8 ) NOT NULL
  77.         CHECK (SPOSOB_WYNAGRODZENIA IN ('PRZELEW','GOTOWKA')),
  78.   ID_PRACOWNIKA INTEGER NOT NULL
  79. )
  80. /
  81.  
  82. -- CREATE INDEXES FOR TABLE WYNAGRODZENIA
  83.  
  84. CREATE INDEX IX_OTRZYMUJE ON WYNAGRODZENIA (ID_PRACOWNIKA)
  85. /
  86.  
  87. -- ADD KEYS FOR TABLE WYNAGRODZENIA
  88.  
  89. ALTER TABLE WYNAGRODZENIA ADD CONSTRAINT UNIQUE_IDENTIFIER3 PRIMARY KEY (ID_WYNAGRODZENIA)
  90. /
  91.  
  92. -- TABLE PRODUKTY
  93.  
  94. CREATE TABLE PRODUKTY(
  95.   ID_PRODUKTU INTEGER NOT NULL,
  96.   NAZWA VARCHAR2(30 ) NOT NULL,
  97.   CENA FLOAT(126) NOT NULL,
  98.   OKRES_GWARANCJI INTEGER NOT NULL,
  99.   ILOSC INTEGER NOT NULL,
  100.   ID_HURTOWNI INTEGER NOT NULL,
  101.   ID_ZAOPATRZENIOWCA INTEGER NOT NULL
  102. )
  103. /
  104.  
  105. -- CREATE INDEXES FOR TABLE PRODUKTY
  106.  
  107. CREATE INDEX IX_POSIADA_PRODUKT ON PRODUKTY (ID_HURTOWNI)
  108. /
  109.  
  110. CREATE INDEX IX_DOSTARCZA ON PRODUKTY (ID_ZAOPATRZENIOWCA)
  111. /
  112.  
  113. -- ADD KEYS FOR TABLE PRODUKTY
  114.  
  115. ALTER TABLE PRODUKTY ADD CONSTRAINT UNIQUE_IDENTIFIER4 PRIMARY KEY (ID_PRODUKTU)
  116. /
  117.  
  118. -- TABLE ZAMOWIENIA
  119.  
  120. CREATE TABLE ZAMOWIENIA(
  121.   ID_ZAMOWIENIA INTEGER NOT NULL,
  122.   DATA_ZLOZENIA DATE NOT NULL,
  123.   DATA_REALIZACJI DATE NOT NULL,
  124.   STAN_WPLATY VARCHAR2(12 ) NOT NULL
  125.         CHECK (STAN_WPLATY IN ('NIE WPLACONO','WPLACONO')),
  126.   KOSZT_TRANSPOORTU NUMBER(10,2) NOT NULL,
  127.   SPOSOB_DOSTAWY VARCHAR2(15 ) NOT NULL
  128.         CHECK (SPOSOB_DOSTAWY IN ('ODBIOR OSOBISTY', 'WYSYLKA')),
  129.   SPOSOB_PLATNOSCI VARCHAR2(8 ) NOT NULL
  130.         CHECK (SPOSOB_WYNAGRODZENIA IN ('PRZELEW','GOTOWKA')),
  131.   ID PODMIOTU INTEGER NOT NULL,
  132.   ID_PRACOWNIKA INTEGER NOT NULL
  133. )
  134. /
  135.  
  136. -- CREATE INDEXES FOR TABLE ZAMOWIENIA
  137.  
  138. CREATE INDEX IX_PODMIOT_SKLADA ON ZAMOWIENIA (ID_PODMIOTU)
  139. /
  140.  
  141. CREATE INDEX IX_PRACOWNIK_REALIZUJE ON ZAMOWIENIA (ID_PRACOWNIKA)
  142. /
  143.  
  144. -- ADD KEYS FOR TABLE ZAMOWIENIA
  145.  
  146. ALTER TABLE ZAMOWIENIA ADD CONSTRAINT UNIQUE_IDENTIFIER5 PRIMARY KEY (ID_ZAMOWIENIA)
  147. /
  148.  
  149. -- TABLE KLIENCI
  150.  
  151. CREATE TABLE KLIENCI(
  152.   ID_KLIENTA INTEGER NOT NULL,
  153.   IMIE VARCHAR2(20 ) NOT NULL,
  154.   NAZWISKO VARCHAR2(30 ) NOT NULL,
  155.   NUMER_TELEFONU VARCHAR2(20 ) NOT NULL,
  156.   EMAIL VARCHAR2(30 ) NOT NULL,
  157.   ID_PODMIOTU INTEGER NOT NULL
  158. )
  159. /
  160.  
  161. -- ADD KEYS FOR TABLE KLIENCI
  162.  
  163. ALTER TABLE KLIENCI ADD CONSTRAINT UNIQUE_IDENTIFIER2 PRIMARY KEY (ID_KLIENTA,ID_PODMIOTU)
  164. /
  165.  
  166. -- TABLE POJAZDY
  167.  
  168. CREATE TABLE POJAZDY(
  169.   ID_POJAZDU INTEGER NOT NULL,
  170.   RODZAJ_PALIWA VARCHAR2(7 ) NOT NULL
  171.         CHECK (RODZAJ_PALIWA IN ('BENZYNA', 'DIESEL')),
  172.   NUMER_REJESTRACYJNY VARCHAR2(30 ) NOT NULL,
  173.   NUMER_VIN CHAR(17 ) NOT NULL,
  174.   DATA_PRODUKCJI DATE NOT NULL,
  175.   ID_HURTOWNI INTEGER NOT NULL,
  176.   ID_MODELU INTEGER NOT NULL
  177. )
  178. /
  179.  
  180. -- CREATE INDEXES FOR TABLE POJAZDY
  181.  
  182. CREATE INDEX IX_POSIADA_POJAZD ON POJAZDY (ID_HURTOWNI)
  183. /
  184.  
  185. CREATE INDEX IX_RELATIONSHIP4 ON POJAZDY (ID_MODELU)
  186. /
  187.  
  188. -- ADD KEYS FOR TABLE POJAZDY
  189.  
  190. ALTER TABLE POJAZDY ADD CONSTRAINT UNIQUE_IDENTIFIER7 PRIMARY KEY (ID_POJAZDU)
  191. /
  192.  
  193. -- TABLE PODMIOTY
  194.  
  195. CREATE TABLE PODMIOTY(
  196.   ID_PODMIOTU INTEGER NOT NULL,
  197.   NAZWA VARCHAR2(30 ) NOT NULL,
  198.   NIP CHAR(10 ) NOT NULL,
  199.   REGON CHAR(9 ) NOT NULL,
  200.   ID_HURTOWNI INTEGER NOT NULL,
  201.   ID_ADRESU INTEGER NOT NULL
  202. )
  203. /
  204.  
  205. -- CREATE INDEXES FOR TABLE PODMIOTY
  206.  
  207. CREATE INDEX IX_POSIADA_PODMIOT ON PODMIOTY (ID_HURTOWNI)
  208. /
  209.  
  210. CREATE INDEX IX_RELATIONSHIP55 ON PODMIOTY (ID_ADRESU)
  211. /
  212.  
  213. -- ADD KEYS FOR TABLE PODMIOTY
  214.  
  215. ALTER TABLE PODMIOTY ADD CONSTRAINT UNIQUE_IDENTIFIER8 PRIMARY KEY (ID_PODMIOTU)
  216. /
  217.  
  218. -- TABLE ZAOPATRZENIOWIECY
  219.  
  220. CREATE TABLE ZAOPATRZENIOWIECY(
  221.   ID_ZAOPATRZENIOWCA INTEGER NOT NULL,
  222.   NAZWA VARCHAR2(30 ) NOT NULL,
  223.   NR_TELEFONU VARCHAR2(20 ) NOT NULL,
  224.   NIP CHAR(10 ) NOT NULL,
  225.   ID_HURTOWNI INTEGER NOT NULL,
  226.   ID_ADRESU INTEGER NOT NULL
  227. )
  228. /
  229.  
  230. -- CREATE INDEXES FOR TABLE ZAOPATRZENIOWIECY
  231.  
  232. CREATE INDEX IX_KONTRAKTUJE ON ZAOPATRZENIOWIECY (ID_HURTOWNI)
  233. /
  234.  
  235. CREATE INDEX IX_RELATIONSHIP11 ON ZAOPATRZENIOWIECY (ID_ADRESU)
  236. /
  237.  
  238. -- ADD KEYS FOR TABLE ZAOPATRZENIOWIECY
  239.  
  240. ALTER TABLE ZAOPATRZENIOWIECY ADD CONSTRAINT UNIQUE_IDENTIFIER9 PRIMARY KEY (ID_ZAOPATRZENIOWCA)
  241. /
  242.  
  243. -- TABLE PRODUKT_ZAMOWIENIA
  244.  
  245. CREATE TABLE PRODUKT_ZAMOWIENIA(
  246.   ID_PRODUKTU INTEGER NOT NULL,
  247.   ID_ZAMOWIENIA INTEGER NOT NULL
  248. )
  249. /
  250.  
  251. -- TABLE PRACOWNIK_POJAZD
  252.  
  253. CREATE TABLE PRACOWNIK_POJAZD(
  254.   ID_PRACOWNIKA INTEGER NOT NULL,
  255.   ID_POJAZDU INTEGER NOT NULL
  256. )
  257. /
  258.  
  259. -- TABLE REALIZACJA_ZAMOWIENIA
  260.  
  261. CREATE TABLE REALIZACJA_ZAMOWIENIA(
  262.   ID_POJAZDU INTEGER NOT NULL,
  263.   ID_ZAMOWIENIA INTEGER NOT NULL
  264. )
  265. /
  266.  
  267. -- TABLE POCZTY
  268.  
  269. CREATE TABLE POCZTY(
  270.   ID_POCZTY INTEGER NOT NULL,
  271.   KOD_POCZTOWY CHAR(6 ) NOT NULL,
  272.   MIASTO VARCHAR2(20 ) NOT NULL
  273. )
  274. /
  275.  
  276. -- ADD KEYS FOR TABLE POCZTY
  277.  
  278. ALTER TABLE POCZTY ADD CONSTRAINT PK_POCZTY PRIMARY KEY (ID_POCZTY)
  279. /
  280.  
  281. ALTER TABLE POCZTY ADD CONSTRAINT KOD POCZTOWY UNIQUE (KOD_POCZTOWY)
  282. /
  283.  
  284. -- TABLE AND COLUMNS COMMENTS SECTION
  285.  
  286. COMMENT ON COLUMN POCZTY.ID_POCZTY IS 'NUMER UNIKATOWY ID POCZTY'
  287. /
  288. COMMENT ON COLUMN POCZTY.KOD_POCZTOWY IS 'KOD POCZTOWY'
  289. /
  290.  
  291. -- TABLE ADRESY
  292.  
  293. CREATE TABLE ADRESY(
  294.   ID_ADRESU INTEGER NOT NULL,
  295.   MIASTO VARCHAR2(20 ) NOT NULL,
  296.   ULICA VARCHAR2(30 ) NOT NULL,
  297.   NR_BUDYNKU VARCHAR2(5 ) NOT NULL,
  298.   NR_LOKALU VARCHAR2(5 ),
  299.   ID_POCZTY INTEGER NOT NULL
  300. )
  301. /
  302.  
  303. -- CREATE INDEXES FOR TABLE ADRESY
  304.  
  305. CREATE INDEX IX_RELATIONSHIP5 ON ADRESY (ID_POCZTY)
  306. /
  307.  
  308. -- ADD KEYS FOR TABLE ADRESY
  309.  
  310. ALTER TABLE ADRESY ADD CONSTRAINT PK_ADRESY PRIMARY KEY (ID_ADRESU)
  311. /
  312.  
  313. -- TABLE AND COLUMNS COMMENTS SECTION
  314.  
  315. COMMENT ON COLUMN ADRESY.ID_ADRESU IS 'NUMER UNIKATOWY ID ADRESU'
  316. /
  317. COMMENT ON COLUMN ADRESY.MIASTO IS 'MIASTO'
  318. /
  319. COMMENT ON COLUMN ADRESY.ULICA IS 'ULICA'
  320. /
  321. COMMENT ON COLUMN ADRESY.NR_BUDYNKU IS 'NUMER BUDYNKU'
  322. /
  323. COMMENT ON COLUMN ADRESY.NR_LOKALU IS 'NUMER LOKALU'
  324. /
  325.  
  326. -- TABLE WłASCICIELE
  327.  
  328. CREATE TABLE WłASCICIELE(
  329.   ID_WLASCICIELA INTEGER NOT NULL,
  330.   IMIE VARCHAR2(20 ) NOT NULL,
  331.   NAZWISKO VARCHAR2(30 ) NOT NULL,
  332.   ID_HURTOWNI INTEGER NOT NULL
  333. )
  334. /
  335.  
  336. -- CREATE INDEXES FOR TABLE WłASCICIELE
  337.  
  338. CREATE INDEX IX_RELATIONSHIP7 ON WłASCICIELE (ID_HURTOWNI)
  339. /
  340.  
  341. -- ADD KEYS FOR TABLE WłASCICIELE
  342.  
  343. ALTER TABLE WłASCICIELE ADD CONSTRAINT PK_WłASCICIELE PRIMARY KEY (ID_WLASCICIELA)
  344. /
  345.  
  346. -- TABLE AND COLUMNS COMMENTS SECTION
  347.  
  348. COMMENT ON COLUMN WłASCICIELE.ID_WLASCICIELA IS 'NUMER UNIKATOWY ID WłAśCICIELA'
  349. /
  350. COMMENT ON COLUMN WłASCICIELE.IMIE IS 'IMIę'
  351. /
  352. COMMENT ON COLUMN WłASCICIELE.NAZWISKO IS 'NAZWISKO'
  353. /
  354.  
  355. -- TABLE MODELE
  356.  
  357. CREATE TABLE MODELE(
  358.   ID_MODELU INTEGER NOT NULL,
  359.   NAZWA VARCHAR2(30 ) NOT NULL,
  360.   ID_MARKI INTEGER NOT NULL
  361. )
  362. /
  363.  
  364. -- CREATE INDEXES FOR TABLE MODELE
  365.  
  366. CREATE INDEX IX_RELATIONSHIP3 ON MODELE (ID_MARKI)
  367. /
  368.  
  369. -- ADD KEYS FOR TABLE MODELE
  370.  
  371. ALTER TABLE MODELE ADD CONSTRAINT PK_MODELE PRIMARY KEY (ID_MODELU)
  372. /
  373.  
  374. -- TABLE MARKI
  375.  
  376. CREATE TABLE MARKI(
  377.   ID_MARKI INTEGER NOT NULL,
  378.   NAZWA VARCHAR2(30 ) NOT NULL
  379. )
  380. /
  381.  
  382. -- ADD KEYS FOR TABLE MARKI
  383.  
  384. ALTER TABLE MARKI ADD CONSTRAINT PK_MARKI PRIMARY KEY (ID_MARKI)
  385. /
  386.  
  387.  
  388. -- CREATE FOREIGN KEYS (RELATIONSHIPS) SECTION -------------------------------------------------
  389.  
  390. ALTER TABLE PRACOWNICY ADD CONSTRAINT ZATRUDNIA FOREIGN KEY (ID_HURTOWNI) REFERENCES HURTOWNIE (ID_HURTOWNI)
  391. /
  392.  
  393.  
  394.  
  395. ALTER TABLE WYNAGRODZENIA ADD CONSTRAINT OTRZYMUJE FOREIGN KEY (ID_PRACOWNIKA) REFERENCES PRACOWNICY (ID_PRACOWNIKA)
  396. /
  397.  
  398.  
  399.  
  400. ALTER TABLE PRODUKTY ADD CONSTRAINT POSIADA_PRODUKT FOREIGN KEY (ID_HURTOWNI) REFERENCES HURTOWNIE (ID_HURTOWNI)
  401. /
  402.  
  403.  
  404.  
  405. ALTER TABLE ZAOPATRZENIOWIECY ADD CONSTRAINT KONTRAKTUJE FOREIGN KEY (ID_HURTOWNI) REFERENCES HURTOWNIE (ID_HURTOWNI)
  406. /
  407.  
  408.  
  409.  
  410. ALTER TABLE PRODUKTY ADD CONSTRAINT DOSTARCZA FOREIGN KEY (ID_ZAOPATRZENIOWCA) REFERENCES ZAOPATRZENIOWIECY (ID_ZAOPATRZENIOWCA)
  411. /
  412.  
  413.  
  414.  
  415. ALTER TABLE POJAZDY ADD CONSTRAINT POSIADA_POJAZD FOREIGN KEY (ID_HURTOWNI) REFERENCES HURTOWNIE (ID_HURTOWNI)
  416. /
  417.  
  418.  
  419.  
  420. ALTER TABLE PODMIOTY ADD CONSTRAINT POSIADA_PODMIOT FOREIGN KEY (ID_HURTOWNI) REFERENCES HURTOWNIE (ID_HURTOWNI)
  421. /
  422.  
  423.  
  424.  
  425. ALTER TABLE ZAMOWIENIA ADD CONSTRAINT PODMIOT_SKLADA FOREIGN KEY (ID_PODMIOTU) REFERENCES PODMIOTY (ID_PODMIOTU)
  426. /
  427.  
  428.  
  429.  
  430. ALTER TABLE ZAMOWIENIA ADD CONSTRAINT PRACOWNIK_REALIZUJE FOREIGN KEY (ID_PRACOWNIKA) REFERENCES PRACOWNICY (ID_PRACOWNIKA)
  431. /
  432.  
  433.  
  434.  
  435. ALTER TABLE HURTOWNIE ADD CONSTRAINT ADRES_HURTOWNI FOREIGN KEY (ID_ADRESU) REFERENCES ADRESY (ID_ADRESU)
  436. /
  437.  
  438.  
  439.  
  440. ALTER TABLE PRACOWNICY ADD CONSTRAINT ADRES_PRACOWNIKA FOREIGN KEY (ID_ADRESU) REFERENCES ADRESY (ID_ADRESU)
  441. /
  442.  
  443.  
  444.  
  445. ALTER TABLE PODMIOTY ADD CONSTRAINT ADRES_PODMIOTU FOREIGN KEY (ID_ADRESU) REFERENCES ADRESY (ID_ADRESU)
  446. /
  447.  
  448.  
  449.  
  450. ALTER TABLE ZAOPATRZENIOWIECY ADD CONSTRAINT ADRES_ZAOPATRZENIOWCA FOREIGN KEY (ID_ADRESU) REFERENCES ADRESY (ID_ADRESU)
  451. /
  452.  
  453.  
  454.  
  455. ALTER TABLE ADRESY ADD CONSTRAINT ADRES_MA_POCZTE FOREIGN KEY (ID_POCZTY) REFERENCES POCZTY (ID_POCZTY)
  456. /
  457.  
  458.  
  459.  
  460. ALTER TABLE WłASCICIELE ADD CONSTRAINT POSIADA_WłASCICIELA FOREIGN KEY (ID_HURTOWNI) REFERENCES HURTOWNIE (ID_HURTOWNI)
  461. /
  462.  
  463.  
  464.  
  465. ALTER TABLE MODELE ADD CONSTRAINT MODEL_MA_MARKE FOREIGN KEY (ID_MARKI) REFERENCES MARKI (ID_MARKI)
  466. /
  467.  
  468.  
  469.  
  470. ALTER TABLE POJAZDY ADD CONSTRAINT POJAZD_MA_MODEL FOREIGN KEY (ID_MODELU) REFERENCES MODELE (ID_MODELU)
  471. /
  472.  
  473.  
  474.  
  475.  
  476.