vujkev
Citat:
Za početak napiši SQL skriptu za kreiranje tabela i nekih testnih podataka kako bi ljudima bilo lakše da ti pomognu.
Napisao sam gore strukturu baze, mislio sam da je to dovoljno. Evo svakako tabela:
-- {Dobavljač({ID_DOBAVLJAČA, NAZIV, STATUS, GRAD}, {ID_DOBAVLJAČA}
Code:
CREATE TABLE Dobavljač(
ID_DOBAVLJAČA VARCHAR(10),
NAZIV VARCHAR(20),
STATUS INT UNSIGNED,
GRAD VARCHAR(20) DEFAULT 'Kotor',
PRIMARY KEY(ID_DOBAVLJAČA)
) CHARACTER SET cp1250;
--Deo({ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD}, {ID_DETALJA}),
Code:
CREATE TABLE Deo(
ID_DETALJA VARCHAR(10),
NAZIV VARCHAR(20) NOT NULL,
BOJA VARCHAR(20) NOT NULL,
TEŽINA FLOAT UNSIGNED,
GRAD VARCHAR(20) DEFAULT 'Kotor',
PRIMARY KEY (ID_DETALJA)
) CHARACTER SET cp1250;
--Proizvod({ID_PROIZVODA, NAZIV, GRAD}, {ID_PROIZVODA}),
Code:
CREATE TABLE Proizvod(
ID_PROIZVODA VARCHAR(10),
NAZIV VARCHAR(20),
GRAD VARCHAR(20) DEFAULT 'Kotor',
PRIMARY KEY (ID_PROIZVODA)
) CHARACTER SET cp1250;
-- SPJ({ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, KOLIČINA}, {ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA}) },
-- SPJ[ID_DOBAVLJAČA] 'je podskup od' Dobavljač[ID_DOBAVLJAČA ],
-- SPJ[ ID_DETALJA ] 'je podskup od' Deo[ ID_DETALJA ],
-- SPJ[ ID_PROIZVODA ] 'je podskup od' Proizvod[ ID_PROIZVODA ]}
Code:
CREATE TABLE Spj(
ID_DOBAVLJAČA VARCHAR(10) REFERENCES Dobavljač(ID_DOBAVLJAČA),
ID_DETALJA VARCHAR(10) REFERENCES Deo(ID_DETALJA),
ID_PROIZVODA VARCHAR(10) REFERENCES Proizvod(ID_PROIZVODA),
KOLIČINA INT UNSIGNED,
PRIMARY KEY(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA)
) CHARACTER SET cp1250;
Evo i proizvoljnog unosa (sama baza je testna, zato ovakve proizvoljnosti pri unosu):
Code:
INSERT INTO Dobavljač(ID_DOBAVLJAČA, NAZIV, STATUS, GRAD) VALUES('DOB1', 'Jugopetrol',1, 'Kotor');
INSERT INTO Dobavljač(ID_DOBAVLJAČA, NAZIV, STATUS, GRAD) VALUES('DOB2', 'Mimoza',2,'Tivat');
INSERT INTO Dobavljač(ID_DOBAVLJAČA, NAZIV, STATUS, GRAD) VALUES('DOB3', 'Expo',12, 'Kotor');
INSERT INTO Dobavljač(ID_DOBAVLJAČA, NAZIV, STATUS, GRAD) VALUES('DOB4', 'Duvanski kombinat',4, 'Podgorica');
INSERT INTO Dobavljač(ID_DOBAVLJAČA, NAZIV, STATUS, GRAD) VALUES('DOB5', 'Hipotekarna banka',4, 'Podgorica');
INSERT INTO Dobavljač(ID_DOBAVLJAČA, NAZIV, STATUS, GRAD) VALUES('DOB6', 'Nekret Lima', 25, 'Novi Sad');
INSERT INTO Dobavljač(ID_DOBAVLJAČA, NAZIV, STATUS, GRAD) VALUES('DOB7', 'Dijamant',27,'Zrenjanin');
INSERT INTO Dobavljač(ID_DOBAVLJAČA, NAZIV, STATUS, GRAD) VALUES('DOB8', 'Drvoinvest',27,'Beograd');
INSERT INTO Deo(ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD) VALUES('D1','Mobilni','Plava', 4.17, 'Podgorica');
INSERT INTO Deo(ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD) VALUES('D2','Igla','Crvena', 4.17, 'Podgorica');
INSERT INTO Deo(ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD) VALUES('D3','Olovka','Crna', 1.17, 'Kotor');
INSERT INTO Deo(ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD) VALUES('D4','Tastatura','Bijela', 7.17, 'Beograd');
INSERT INTO Deo(ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD) VALUES('D5','Štampač','Crna', 17.17, 'Beograd');
INSERT INTO Deo(ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD) VALUES('D6','Štampač','Crvena', 127.17, 'Zrenjanin');
INSERT INTO Deo(ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD) VALUES('D7','Kazaljka','Crvena', 127.17, 'Zrenjanin');
INSERT INTO Deo(ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD) VALUES('D8','Monitor','Crvena', 800, 'Novi Sad');
INSERT INTO Deo(ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD) VALUES('D9','Monitor','Crvena', 700, 'Novi Sad');
INSERT INTO Deo(ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD) VALUES('D10','Šaraf','Siva', 1700, 'Kotor');
INSERT INTO Proizvod(ID_PROIZVODA, NAZIV, GRAD) VALUES('P1','Auto','Kotor');
INSERT INTO Proizvod(ID_PROIZVODA, NAZIV, GRAD) VALUES('P2','Voz','Bijelo Polje');
INSERT INTO Proizvod(ID_PROIZVODA, NAZIV, GRAD) VALUES('P3','Avion','Nikšić');
INSERT INTO Proizvod(ID_PROIZVODA, NAZIV, GRAD) VALUES('P4','Tramvaj','Beograd');
INSERT INTO Proizvod(ID_PROIZVODA, NAZIV, GRAD) VALUES('P5','Brod','Užice');
INSERT INTO Proizvod(ID_PROIZVODA, NAZIV, GRAD) VALUES('P6','Podmornica','Zrenjanin');
INSERT INTO Proizvod(ID_PROIZVODA, NAZIV, GRAD) VALUES('P7','Raketa','Novi Sad');
INSERT INTO Proizvod(ID_PROIZVODA, NAZIV, GRAD) VALUES('P8','Bušotina','Lajkovac');
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB1','D4','P5',17);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB1','D3','P4',23);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB2','D1','P1',107);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB2','D4','P1', 127);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB4','D3','P5', 109);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB5','D3','P5', 300);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB5','D2','P5', 700);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB6','D8','P7', 7100);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB7','D1','P4', 900);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB7','D2','P4', 900);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB7','D3','P4', 900);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB7','D4','P4', 900);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB7','D5','P4', 900);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB7','D6','P4', 900);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB7','D7','P4', 900);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB7','D8','P7', 7100);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB7','D9','P4', 900);
INSERT INTO Spj(ID_DOBAVLJAČA, ID_DETALJA, ID_PROIZVODA, Količina) VALUES('DOB1','D10','P8', 900);
U prvom postu sam napisao sta mi tacno treba, a u drugom kako sam rijesio. Opet, to sigurno moze bolje - nekako mi djeluje da je elegantno rešenje bolno prosto, ali da ga ne vidim. Pozdrav i hvala.
P.S. Radim u MySQL-u, ali ne bi trebalo da je bitno. Kome ne moze da prodje ovo CHARACTER SET, neka obrise taj dodatak i obrise nasa slova (č, ć, ž...).
Milivojev pas je siledžija. Siledžija!