- /*
- CREATED: 29.04.2020
- MODIFIED: 02.05.2020
- PROJECT: HURTOWNIA SPRZęTU ELEKTRONICZNEGO
- MODEL: HURTNIOWNIA
- AUTHOR: MICHAł STOLARSKI, MATEUSZ MARCINIAK
- DATABASE: ORACLE 12C
- */
- -- CREATE TABLES SECTION -------------------------------------------------
- -- TABLE HURTOWNIE
- CREATE TABLE HURTOWNIE(
- ID_HURTOWNI INTEGER NOT NULL,
- NAZWA VARCHAR2(30 ) NOT NULL,
- ID_ADRESU INTEGER NOT NULL
- )
- /
- -- CREATE INDEXES FOR TABLE HURTOWNIE
- CREATE INDEX IX_RELATIONSHIP1 ON HURTOWNIE (ID_ADRESU)
- /
- -- ADD KEYS FOR TABLE HURTOWNIE
- ALTER TABLE HURTOWNIE ADD CONSTRAINT UNIQUE_IDENTIFIER1 PRIMARY KEY (ID_HURTOWNI)
- /
- -- TABLE AND COLUMNS COMMENTS SECTION
- COMMENT ON COLUMN HURTOWNIE.NAZWA IS 'NAZWA HURTOWNI'
- /
- -- TABLE PRACOWNICY
- CREATE TABLE PRACOWNICY(
- ID_PRACOWNIKA INTEGER NOT NULL,
- IMIE VARCHAR2(20 ) NOT NULL,
- NAZWISKO VARCHAR2(30 ) NOT NULL,
- NUMER_TELEFONU VARCHAR2(20 ) NOT NULL,
- EMAIL VARCHAR2(30 ) NOT NULL,
- PESEL CHAR(11 ),
- DATA_URODZENIA DATE NOT NULL,
- DATA_ZATRUDNIENIA DATE NOT NULL,
- PLEC CHAR(1 ) NOT NULL
- CHECK (PLEC IN ('K','M')),
- STANOWISKO VARCHAR2(23 ) NOT NULL
- CHECK (STANOWISKO IN ('MAGAZYNIER', 'KIEROWCA', 'PRZEDSTAWICIEL HANDLOWY', 'KSIEGOWY')),
- ID_HURTOWNI INTEGER NOT NULL,
- ID_ADRESU INTEGER NOT NULL
- )
- /
- -- CREATE INDEXES FOR TABLE PRACOWNICY
- CREATE INDEX IX_ZATRUDNIA ON PRACOWNICY (ID_HURTOWNI)
- /
- CREATE INDEX IX_RELATIONSHIP2 ON PRACOWNICY (ID_ADRESU)
- /
- -- ADD KEYS FOR TABLE PRACOWNICY
- ALTER TABLE PRACOWNICY ADD CONSTRAINT UNIQUE_PRACOWNIK PRIMARY KEY (ID_PRACOWNIKA)
- /
- -- TABLE WYNAGRODZENIA
- CREATE TABLE WYNAGRODZENIA(
- ID_WYNAGRODZENIA INTEGER NOT NULL,
- DATA_WYNAGRODZENIA DATE NOT NULL,
- STAWKA NUMBER(10,2) NOT NULL,
- SPOSOB_WYNAGRODZENIA VARCHAR2(8 ) NOT NULL
- CHECK (SPOSOB_WYNAGRODZENIA IN ('PRZELEW','GOTOWKA')),
- ID_PRACOWNIKA INTEGER NOT NULL
- )
- /
- -- CREATE INDEXES FOR TABLE WYNAGRODZENIA
- CREATE INDEX IX_OTRZYMUJE ON WYNAGRODZENIA (ID_PRACOWNIKA)
- /
- -- ADD KEYS FOR TABLE WYNAGRODZENIA
- ALTER TABLE WYNAGRODZENIA ADD CONSTRAINT UNIQUE_IDENTIFIER3 PRIMARY KEY (ID_WYNAGRODZENIA)
- /
- -- TABLE PRODUKTY
- CREATE TABLE PRODUKTY(
- ID_PRODUKTU INTEGER NOT NULL,
- NAZWA VARCHAR2(30 ) NOT NULL,
- CENA FLOAT(126) NOT NULL,
- OKRES_GWARANCJI INTEGER NOT NULL,
- ILOSC INTEGER NOT NULL,
- ID_HURTOWNI INTEGER NOT NULL,
- ID_ZAOPATRZENIOWCA INTEGER NOT NULL
- )
- /
- -- CREATE INDEXES FOR TABLE PRODUKTY
- CREATE INDEX IX_POSIADA_PRODUKT ON PRODUKTY (ID_HURTOWNI)
- /
- CREATE INDEX IX_DOSTARCZA ON PRODUKTY (ID_ZAOPATRZENIOWCA)
- /
- -- ADD KEYS FOR TABLE PRODUKTY
- ALTER TABLE PRODUKTY ADD CONSTRAINT UNIQUE_IDENTIFIER4 PRIMARY KEY (ID_PRODUKTU)
- /
- -- TABLE ZAMOWIENIA
- CREATE TABLE ZAMOWIENIA(
- ID_ZAMOWIENIA INTEGER NOT NULL,
- DATA_ZLOZENIA DATE NOT NULL,
- DATA_REALIZACJI DATE NOT NULL,
- STAN_WPLATY VARCHAR2(12 ) NOT NULL
- CHECK (STAN_WPLATY IN ('NIE WPLACONO','WPLACONO')),
- KOSZT_TRANSPOORTU NUMBER(10,2) NOT NULL,
- SPOSOB_DOSTAWY VARCHAR2(15 ) NOT NULL
- CHECK (SPOSOB_DOSTAWY IN ('ODBIOR OSOBISTY', 'WYSYLKA')),
- SPOSOB_PLATNOSCI VARCHAR2(8 ) NOT NULL
- CHECK (SPOSOB_WYNAGRODZENIA IN ('PRZELEW','GOTOWKA')),
- ID PODMIOTU INTEGER NOT NULL,
- ID_PRACOWNIKA INTEGER NOT NULL
- )
- /
- -- CREATE INDEXES FOR TABLE ZAMOWIENIA
- CREATE INDEX IX_PODMIOT_SKLADA ON ZAMOWIENIA (ID_PODMIOTU)
- /
- CREATE INDEX IX_PRACOWNIK_REALIZUJE ON ZAMOWIENIA (ID_PRACOWNIKA)
- /
- -- ADD KEYS FOR TABLE ZAMOWIENIA
- ALTER TABLE ZAMOWIENIA ADD CONSTRAINT UNIQUE_IDENTIFIER5 PRIMARY KEY (ID_ZAMOWIENIA)
- /
- -- TABLE KLIENCI
- CREATE TABLE KLIENCI(
- ID_KLIENTA INTEGER NOT NULL,
- IMIE VARCHAR2(20 ) NOT NULL,
- NAZWISKO VARCHAR2(30 ) NOT NULL,
- NUMER_TELEFONU VARCHAR2(20 ) NOT NULL,
- EMAIL VARCHAR2(30 ) NOT NULL,
- ID_PODMIOTU INTEGER NOT NULL
- )
- /
- -- ADD KEYS FOR TABLE KLIENCI
- ALTER TABLE KLIENCI ADD CONSTRAINT UNIQUE_IDENTIFIER2 PRIMARY KEY (ID_KLIENTA,ID_PODMIOTU)
- /
- -- TABLE POJAZDY
- CREATE TABLE POJAZDY(
- ID_POJAZDU INTEGER NOT NULL,
- RODZAJ_PALIWA VARCHAR2(7 ) NOT NULL
- CHECK (RODZAJ_PALIWA IN ('BENZYNA', 'DIESEL')),
- NUMER_REJESTRACYJNY VARCHAR2(30 ) NOT NULL,
- NUMER_VIN CHAR(17 ) NOT NULL,
- DATA_PRODUKCJI DATE NOT NULL,
- ID_HURTOWNI INTEGER NOT NULL,
- ID_MODELU INTEGER NOT NULL
- )
- /
- -- CREATE INDEXES FOR TABLE POJAZDY
- CREATE INDEX IX_POSIADA_POJAZD ON POJAZDY (ID_HURTOWNI)
- /
- CREATE INDEX IX_RELATIONSHIP4 ON POJAZDY (ID_MODELU)
- /
- -- ADD KEYS FOR TABLE POJAZDY
- ALTER TABLE POJAZDY ADD CONSTRAINT UNIQUE_IDENTIFIER7 PRIMARY KEY (ID_POJAZDU)
- /
- -- TABLE PODMIOTY
- CREATE TABLE PODMIOTY(
- ID_PODMIOTU INTEGER NOT NULL,
- NAZWA VARCHAR2(30 ) NOT NULL,
- NIP CHAR(10 ) NOT NULL,
- REGON CHAR(9 ) NOT NULL,
- ID_HURTOWNI INTEGER NOT NULL,
- ID_ADRESU INTEGER NOT NULL
- )
- /
- -- CREATE INDEXES FOR TABLE PODMIOTY
- CREATE INDEX IX_POSIADA_PODMIOT ON PODMIOTY (ID_HURTOWNI)
- /
- CREATE INDEX IX_RELATIONSHIP55 ON PODMIOTY (ID_ADRESU)
- /
- -- ADD KEYS FOR TABLE PODMIOTY
- ALTER TABLE PODMIOTY ADD CONSTRAINT UNIQUE_IDENTIFIER8 PRIMARY KEY (ID_PODMIOTU)
- /
- -- TABLE ZAOPATRZENIOWIECY
- CREATE TABLE ZAOPATRZENIOWIECY(
- ID_ZAOPATRZENIOWCA INTEGER NOT NULL,
- NAZWA VARCHAR2(30 ) NOT NULL,
- NR_TELEFONU VARCHAR2(20 ) NOT NULL,
- NIP CHAR(10 ) NOT NULL,
- ID_HURTOWNI INTEGER NOT NULL,
- ID_ADRESU INTEGER NOT NULL
- )
- /
- -- CREATE INDEXES FOR TABLE ZAOPATRZENIOWIECY
- CREATE INDEX IX_KONTRAKTUJE ON ZAOPATRZENIOWIECY (ID_HURTOWNI)
- /
- CREATE INDEX IX_RELATIONSHIP11 ON ZAOPATRZENIOWIECY (ID_ADRESU)
- /
- -- ADD KEYS FOR TABLE ZAOPATRZENIOWIECY
- ALTER TABLE ZAOPATRZENIOWIECY ADD CONSTRAINT UNIQUE_IDENTIFIER9 PRIMARY KEY (ID_ZAOPATRZENIOWCA)
- /
- -- TABLE PRODUKT_ZAMOWIENIA
- CREATE TABLE PRODUKT_ZAMOWIENIA(
- ID_PRODUKTU INTEGER NOT NULL,
- ID_ZAMOWIENIA INTEGER NOT NULL
- )
- /
- -- TABLE PRACOWNIK_POJAZD
- CREATE TABLE PRACOWNIK_POJAZD(
- ID_PRACOWNIKA INTEGER NOT NULL,
- ID_POJAZDU INTEGER NOT NULL
- )
- /
- -- TABLE REALIZACJA_ZAMOWIENIA
- CREATE TABLE REALIZACJA_ZAMOWIENIA(
- ID_POJAZDU INTEGER NOT NULL,
- ID_ZAMOWIENIA INTEGER NOT NULL
- )
- /
- -- TABLE POCZTY
- CREATE TABLE POCZTY(
- ID_POCZTY INTEGER NOT NULL,
- KOD_POCZTOWY CHAR(6 ) NOT NULL,
- MIASTO VARCHAR2(20 ) NOT NULL
- )
- /
- -- ADD KEYS FOR TABLE POCZTY
- ALTER TABLE POCZTY ADD CONSTRAINT PK_POCZTY PRIMARY KEY (ID_POCZTY)
- /
- ALTER TABLE POCZTY ADD CONSTRAINT KOD POCZTOWY UNIQUE (KOD_POCZTOWY)
- /
- -- TABLE AND COLUMNS COMMENTS SECTION
- COMMENT ON COLUMN POCZTY.ID_POCZTY IS 'NUMER UNIKATOWY ID POCZTY'
- /
- COMMENT ON COLUMN POCZTY.KOD_POCZTOWY IS 'KOD POCZTOWY'
- /
- -- TABLE ADRESY
- CREATE TABLE ADRESY(
- ID_ADRESU INTEGER NOT NULL,
- MIASTO VARCHAR2(20 ) NOT NULL,
- ULICA VARCHAR2(30 ) NOT NULL,
- NR_BUDYNKU VARCHAR2(5 ) NOT NULL,
- NR_LOKALU VARCHAR2(5 ),
- ID_POCZTY INTEGER NOT NULL
- )
- /
- -- CREATE INDEXES FOR TABLE ADRESY
- CREATE INDEX IX_RELATIONSHIP5 ON ADRESY (ID_POCZTY)
- /
- -- ADD KEYS FOR TABLE ADRESY
- ALTER TABLE ADRESY ADD CONSTRAINT PK_ADRESY PRIMARY KEY (ID_ADRESU)
- /
- -- TABLE AND COLUMNS COMMENTS SECTION
- COMMENT ON COLUMN ADRESY.ID_ADRESU IS 'NUMER UNIKATOWY ID ADRESU'
- /
- COMMENT ON COLUMN ADRESY.MIASTO IS 'MIASTO'
- /
- COMMENT ON COLUMN ADRESY.ULICA IS 'ULICA'
- /
- COMMENT ON COLUMN ADRESY.NR_BUDYNKU IS 'NUMER BUDYNKU'
- /
- COMMENT ON COLUMN ADRESY.NR_LOKALU IS 'NUMER LOKALU'
- /
- -- TABLE WłASCICIELE
- CREATE TABLE WłASCICIELE(
- ID_WLASCICIELA INTEGER NOT NULL,
- IMIE VARCHAR2(20 ) NOT NULL,
- NAZWISKO VARCHAR2(30 ) NOT NULL,
- ID_HURTOWNI INTEGER NOT NULL
- )
- /
- -- CREATE INDEXES FOR TABLE WłASCICIELE
- CREATE INDEX IX_RELATIONSHIP7 ON WłASCICIELE (ID_HURTOWNI)
- /
- -- ADD KEYS FOR TABLE WłASCICIELE
- ALTER TABLE WłASCICIELE ADD CONSTRAINT PK_WłASCICIELE PRIMARY KEY (ID_WLASCICIELA)
- /
- -- TABLE AND COLUMNS COMMENTS SECTION
- COMMENT ON COLUMN WłASCICIELE.ID_WLASCICIELA IS 'NUMER UNIKATOWY ID WłAśCICIELA'
- /
- COMMENT ON COLUMN WłASCICIELE.IMIE IS 'IMIę'
- /
- COMMENT ON COLUMN WłASCICIELE.NAZWISKO IS 'NAZWISKO'
- /
- -- TABLE MODELE
- CREATE TABLE MODELE(
- ID_MODELU INTEGER NOT NULL,
- NAZWA VARCHAR2(30 ) NOT NULL,
- ID_MARKI INTEGER NOT NULL
- )
- /
- -- CREATE INDEXES FOR TABLE MODELE
- CREATE INDEX IX_RELATIONSHIP3 ON MODELE (ID_MARKI)
- /
- -- ADD KEYS FOR TABLE MODELE
- ALTER TABLE MODELE ADD CONSTRAINT PK_MODELE PRIMARY KEY (ID_MODELU)
- /
- -- TABLE MARKI
- CREATE TABLE MARKI(
- ID_MARKI INTEGER NOT NULL,
- NAZWA VARCHAR2(30 ) NOT NULL
- )
- /
- -- ADD KEYS FOR TABLE MARKI
- ALTER TABLE MARKI ADD CONSTRAINT PK_MARKI PRIMARY KEY (ID_MARKI)
- /
- -- CREATE FOREIGN KEYS (RELATIONSHIPS) SECTION -------------------------------------------------
- ALTER TABLE PRACOWNICY ADD CONSTRAINT ZATRUDNIA FOREIGN KEY (ID_HURTOWNI) REFERENCES HURTOWNIE (ID_HURTOWNI)
- /
- ALTER TABLE WYNAGRODZENIA ADD CONSTRAINT OTRZYMUJE FOREIGN KEY (ID_PRACOWNIKA) REFERENCES PRACOWNICY (ID_PRACOWNIKA)
- /
- ALTER TABLE PRODUKTY ADD CONSTRAINT POSIADA_PRODUKT FOREIGN KEY (ID_HURTOWNI) REFERENCES HURTOWNIE (ID_HURTOWNI)
- /
- ALTER TABLE ZAOPATRZENIOWIECY ADD CONSTRAINT KONTRAKTUJE FOREIGN KEY (ID_HURTOWNI) REFERENCES HURTOWNIE (ID_HURTOWNI)
- /
- ALTER TABLE PRODUKTY ADD CONSTRAINT DOSTARCZA FOREIGN KEY (ID_ZAOPATRZENIOWCA) REFERENCES ZAOPATRZENIOWIECY (ID_ZAOPATRZENIOWCA)
- /
- ALTER TABLE POJAZDY ADD CONSTRAINT POSIADA_POJAZD FOREIGN KEY (ID_HURTOWNI) REFERENCES HURTOWNIE (ID_HURTOWNI)
- /
- ALTER TABLE PODMIOTY ADD CONSTRAINT POSIADA_PODMIOT FOREIGN KEY (ID_HURTOWNI) REFERENCES HURTOWNIE (ID_HURTOWNI)
- /
- ALTER TABLE ZAMOWIENIA ADD CONSTRAINT PODMIOT_SKLADA FOREIGN KEY (ID_PODMIOTU) REFERENCES PODMIOTY (ID_PODMIOTU)
- /
- ALTER TABLE ZAMOWIENIA ADD CONSTRAINT PRACOWNIK_REALIZUJE FOREIGN KEY (ID_PRACOWNIKA) REFERENCES PRACOWNICY (ID_PRACOWNIKA)
- /
- ALTER TABLE HURTOWNIE ADD CONSTRAINT ADRES_HURTOWNI FOREIGN KEY (ID_ADRESU) REFERENCES ADRESY (ID_ADRESU)
- /
- ALTER TABLE PRACOWNICY ADD CONSTRAINT ADRES_PRACOWNIKA FOREIGN KEY (ID_ADRESU) REFERENCES ADRESY (ID_ADRESU)
- /
- ALTER TABLE PODMIOTY ADD CONSTRAINT ADRES_PODMIOTU FOREIGN KEY (ID_ADRESU) REFERENCES ADRESY (ID_ADRESU)
- /
- ALTER TABLE ZAOPATRZENIOWIECY ADD CONSTRAINT ADRES_ZAOPATRZENIOWCA FOREIGN KEY (ID_ADRESU) REFERENCES ADRESY (ID_ADRESU)
- /
- ALTER TABLE ADRESY ADD CONSTRAINT ADRES_MA_POCZTE FOREIGN KEY (ID_POCZTY) REFERENCES POCZTY (ID_POCZTY)
- /
- ALTER TABLE WłASCICIELE ADD CONSTRAINT POSIADA_WłASCICIELA FOREIGN KEY (ID_HURTOWNI) REFERENCES HURTOWNIE (ID_HURTOWNI)
- /
- ALTER TABLE MODELE ADD CONSTRAINT MODEL_MA_MARKE FOREIGN KEY (ID_MARKI) REFERENCES MARKI (ID_MARKI)
- /
- ALTER TABLE POJAZDY ADD CONSTRAINT POJAZD_MA_MODEL FOREIGN KEY (ID_MODELU) REFERENCES MODELE (ID_MODELU)
- /