Witam
Mam stworzyc relacyjna baze danych za pomoca skryptu, ale slabo wychodza. Oto relacje:
klient - faktura
jeden do wielu
faktura-pozycja
jeden do wielu
pozycja-towar
wiele do jeden
a to skrypt:
use faktura;
system echo "Usuwanie istniejacych tabel"
DROP TABLE IF EXISTS klient;
DROP TABLE IF EXISTS faktura;
DROP TABLE IF EXISTS pozycja;
DROP TABLE IF EXISTS towar;
system echo "Tworzenie tabeli klient"
CREATE TABLE IF NOT EXISTS klient
(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
pesel CHAR(11) NOT NULL UNIQUE,
imie VARCHAR(30) NOT NULL,
nazwisko VARCHAR(50) NOT NULL,
miejscowosc VARCHAR(40) NOT NULL,
ulica VARCHAR(60) NOT NULL,
dom CHAR(3) NOT NULL,
mieszkanie CHAR(3),
poczta CHAR(7) NOT NULL,
nip CHAR(13),
email VARCHAR(50),
telefon CHAR(13)
)ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci;
system echo "Wypelnianie danymi tabeli klient"
INSERT INTO klient(pesel,imie,nazwisko,miejscowosc,ulica,dom,mieszkanie,poczta,nip,email,tel
efon)
VALUES('','','','','','','','','','','');
system echo "Tworzenie tabeli faktura"
CREATE TABLE IF NOT EXISTS faktura
(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
id_klient INTEGER NOT NULL,
nip CHAR(13) NOT NULL UNIQUE,
sprzedawca VARCHAR(40) NOT NULL,
miejscowosc VARCHAR(40) NOT NULL,
ulica VARCHAR(60) NOT NULL,
nrlokalu CHAR(3) NOT NULL,
poczta CHAR(7) NOT NULL,
email VARCHAR(50),
telefon CHAR(13),
formazaplaty VARCHAR(10) NOT NULL,
terminzaplaty VARCHAR(30),
bank VARCHAR(60),
konto CHAR(30),
uwagi VARCHAR(500),
FOREIGN KEY (id_klient) REFERENCES klient(id)
)ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci;
ALTER TABLE faktura ADD FOREIGN KEY (id_klient) REFERENCES klient(id);
system echo "Wypelnianie danymi tabeli faktura"
INSERT INTO faktura(nip,sprzedawca,miejscowosc,ulica,nrlokalu,poczta,email,telefon,formazapl
aty,terminzaplaty,bank,konto,uwagi)
VALUES();
system echo "Tworzenie tabeli pozycja towarowa"
CREATE TABLE IF NOT EXISTS pozycja
(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
id_faktura INTEGER NOT NULL,
id_towar INTEGER NOT NULL,
cenabrutto DECIMAL(7,3) NOT NULL,
kosztvatu DECIMAL(7,3) NOT NULL,
cenanetto DECIMAL(7,3) NOT NULL,
rabat DECIMAL(7),
porabacie DECIMAL(7,3),
zaliczka DECIMAL(7,3),
razem DECIMAL(7,3) NOT NULL,
FOREIGN KEY (id_faktura) REFERENCES faktura(id),
FOREIGN KEY (id_towar) REFERENCES towar(id)
)ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci;
ALTER TABLE pozycja ADD FOREIGN KEY (id_faktura) REFERENCES faktura(id);
ALTER TABLE pozycja ADD FOREIGN KEY (id_towar) REFERENCES towar(id);
system echo "Wypelnianie danymi tabeli pozycja towarowa"
INSERT INTO poztowarowa(cenabrutto,kosztvatu,cenanetto,rabat,porabacie,zaliczka,razem)
VALUES('1545,62','340,04','1204,96','250','954,96','340','614,96'),
('450,5','99,11','351,39','50','400,5','200','200,5'),
('320,25','70,45','249,80','90','230,25','200','30,25'),
('60,78','13,72','47,06','8,80','51,98','0,00','51,98'),
('789,90','173,77','616,13','60','729,90','50','679,90'),
('650,76','143,18','507,58','20','630,76','0,00','630,76'),
('1545,62','340,04','1204,96','250','954','340','614,96'),
('8,80','1,94','6,86','0,00','6,86','0,00','6,86'),
('1900','418','1482','120','1780','670','1110'),
('560','39,20','520,80','67,98','492,02','0,00','492,02'),
system echo "Tworzenie tabeli towar"
CREATE TABLE IF NOT EXISTS towar
(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
nazwa VARCHAR(40) NOT NULL UNIQUE,
jednostkamiary VARCHAR(15) NOT NULL,
ilosc CHAR(8) NOT NULL,
stawkavat CHAR(3) NOT NULL
)ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci;
system echo "Wypelnianie danymi tabeli towar"
INSERT INTO towar(nazwa,jednostkamiary,ilosc,stawkavat)
VALUES('Skuter','sztuka','1','22%'),
('Paleta wody','sztuka','4','22%'),
('Jablka','kg','120','22%'),
('Gruszki','kg','15','22%'),
('Monitor','sztuka','10','22%'),
('Pamiec RAM DDR3','kosc','3','22%'),
('Dostawa mleka','litr','10000','22%'),
('Pomidory','kg','2','22%'),
('Laptop','sztuka','1','22%'),
('Podreczniki do klasy pierwszej gimnazjum','komplet','1','7%');
jak powinny wygladac te relacje bardzo prosze o pomoc.oczywiscie dane usunelem z wzgleu ochrony danych osobowych.