· 9 years ago · Jan 17, 2017, 08:12 PM
1-- MySQL Workbench Forward Engineering
2
3SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
4SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
5SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
6
7-- -----------------------------------------------------
8-- Schema mydb
9-- -----------------------------------------------------
10
11-- -----------------------------------------------------
12-- Schema mydb
13-- -----------------------------------------------------
14CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
15USE `mydb` ;
16
17-- -----------------------------------------------------
18-- Table `mydb`.`Samochod`
19-- -----------------------------------------------------
20DROP TABLE IF EXISTS `mydb`.`Samochod` ;
21
22CREATE TABLE IF NOT EXISTS `mydb`.`Samochod` (
23 VIN VARCHAR(20) NOT NULL,
24 ID_klient INT(6) NOT NULL,
25 ID_typ_samochodu INT(7) NOT NULL,
26 ID_rok_produkcji SMALLINT(3) NOT NULL,
27 ID_nadwozie TINYINT NOT NULL,
28 Nr_rejestracyjny VARCHAR(10) NOT NULL UNIQUE,
29 Rok_produkcji SMALLINT(4) NOT NULL,
30 Silnik VARCHAR(20) NOT NULL,
31 Opis VARCHAR(5000),
32 PRIMARY KEY (VIN));
33
34
35-- -----------------------------------------------------
36-- Table `mydb`.`Pracownik`
37-- -----------------------------------------------------
38DROP TABLE IF EXISTS `mydb`.`Pracownik` ;
39
40CREATE TABLE IF NOT EXISTS `mydb`.`Pracownik` (
41 ID_pracownik INT(6) NOT NULL AUTO_INCREMENT,
42 ID_dane_osobowe INT(8) NOT NULL,
43 Login VARCHAR(20) NOT NULL UNIQUE,
44 Haslo VARCHAR(4) NOT NULL,
45 Admin BIT(1) NOT NULL,
46 PRIMARY KEY (ID_pracownik)
47);
48
49
50-- -----------------------------------------------------
51-- Table `mydb`.`Usluga`
52-- -----------------------------------------------------
53DROP TABLE IF EXISTS `mydb`.`Usluga` ;
54
55CREATE TABLE IF NOT EXISTS `mydb`.`Usluga` (
56 ID_usluga INT(7) NOT NULL AUTO_INCREMENT,
57 VIN VARCHAR(20) NOT NULL,
58 Data_rozpoczecia DATE,
59 Data_zakonczenia DATE,
60 Cena FLOAT,
61 Opis VARCHAR(5000) NOT NULL,
62 PRIMARY KEY (ID_usluga)
63);
64
65
66-- -----------------------------------------------------
67-- Table `mydb`.`Czesc`
68-- -----------------------------------------------------
69DROP TABLE IF EXISTS `mydb`.`Czesc` ;
70
71CREATE TABLE IF NOT EXISTS `mydb`.`Czesc` (
72 ID_czesc SMALLINT(8) NOT NULL AUTO_INCREMENT,
73 Typ_czesci VARCHAR(30) NOT NULL,
74 Nazwa_katalogowa VARCHAR(30) NOT NULL UNIQUE,
75 Nazwa_jednostki VARCHAR(10) NOT NULL,
76 Cena_jednostki FLOAT,
77 Opis VARCHAR(5000),
78 PRIMARY KEY (ID_czesc)
79);
80
81
82-- -----------------------------------------------------
83-- Table `mydb`.`Klient`
84-- -----------------------------------------------------
85DROP TABLE IF EXISTS `mydb`.`Klient` ;
86
87CREATE TABLE IF NOT EXISTS `mydb`.`Klient` (
88 ID_klient INT(6) NOT NULL AUTO_INCREMENT,
89 ID_dane_osobowe INT(8) NOT NULL,
90 CONSTRAINT Klient PRIMARY KEY (ID_klient)
91);
92
93
94-- -----------------------------------------------------
95-- Table `mydb`.`Typ_samochodu`
96-- -----------------------------------------------------
97DROP TABLE IF EXISTS `mydb`.`Typ_samochodu` ;
98
99CREATE TABLE IF NOT EXISTS `mydb`.`Typ_samochodu` (
100 ID_typ_samochodu INT(7) NOT NULL AUTO_INCREMENT,
101 Marka VARCHAR(20) NOT NULL,
102 Model VARCHAR(20) NOT NULL,
103 PRIMARY KEY (ID_typ_samochodu)
104);
105
106
107-- -----------------------------------------------------
108-- Table `mydb`.`Lista_czesci`
109-- -----------------------------------------------------
110DROP TABLE IF EXISTS `mydb`.`Lista_czesci` ;
111
112CREATE TABLE IF NOT EXISTS `mydb`.`Lista_czesci` (
113 ID_usluga INT(7) NOT NULL,
114 ID_czesc SMALLINT(8) NOT NULL,
115 Ilosc INT(4) NOT NULL
116);
117
118
119-- -----------------------------------------------------
120-- Table `mydb`.`Lista_pracownikow`
121-- -----------------------------------------------------
122DROP TABLE IF EXISTS `mydb`.`Lista_pracownikow` ;
123
124CREATE TABLE IF NOT EXISTS `mydb`.`Lista_pracownikow` (
125 ID_pracownik INT(6) NOT NULL,
126 ID_usluga INT(7) NOT NULL
127);
128
129
130-- -----------------------------------------------------
131-- Table `mydb`.`Nadwozie`
132-- -----------------------------------------------------
133DROP TABLE IF EXISTS `mydb`.`Nadwozie` ;
134
135CREATE TABLE IF NOT EXISTS `mydb`.`Nadwozie` (
136 ID_nadwozie TINYINT NOT NULL AUTO_INCREMENT,
137 Nadwozie VARCHAR(10) NOT NULL,
138 PRIMARY KEY (ID_nadwozie)
139);
140
141
142-- -----------------------------------------------------
143-- Table `mydb`.`Dane_osobowe`
144-- -----------------------------------------------------
145DROP TABLE IF EXISTS `mydb`.`Dane_osobowe` ;
146
147CREATE TABLE IF NOT EXISTS `mydb`.`Dane_osobowe` (
148 ID_dane_osobowe INT(8) NOT NULL AUTO_INCREMENT,
149 Imie VARCHAR(20) NOT NULL,
150 Nazwisko VARCHAR(30) NOT NULL,
151 Nr_telefonu INT(12) NOT NULL UNIQUE,
152 Email VARCHAR(40) NOT NULL UNIQUE,
153 Adres VARCHAR(60) NOT NULL,
154 PRIMARY KEY (ID_dane_osobowe)
155);
156
157
158ALTER TABLE Usluga ADD INDEX FKUsluga240832 (VIN), ADD CONSTRAINT FKUsluga240832 FOREIGN KEY (VIN) REFERENCES Samochod (VIN);
159ALTER TABLE Samochod ADD INDEX FKSamochod453380 (ID_klient), ADD CONSTRAINT FKSamochod453380 FOREIGN KEY (ID_klient) REFERENCES Klient (ID_klient);
160ALTER TABLE Samochod ADD INDEX FKSamochod946228 (ID_typ_samochodu), ADD CONSTRAINT FKSamochod946228 FOREIGN KEY (ID_typ_samochodu) REFERENCES Typ_samochodu (ID_typ_samochodu);
161ALTER TABLE Lista_czesci ADD INDEX FKLista_czes988171 (ID_usluga), ADD CONSTRAINT FKLista_czes988171 FOREIGN KEY (ID_usluga) REFERENCES Usluga (ID_usluga);
162ALTER TABLE Lista_czesci ADD INDEX FKLista_czes827883 (ID_czesc), ADD CONSTRAINT FKLista_czes827883 FOREIGN KEY (ID_czesc) REFERENCES Czesc (ID_czesc);
163ALTER TABLE Lista_pracownikow ADD INDEX FKLista_prac105555 (ID_pracownik), ADD CONSTRAINT FKLista_prac105555 FOREIGN KEY (ID_pracownik) REFERENCES Pracownik (ID_pracownik);
164ALTER TABLE Lista_pracownikow ADD INDEX FKLista_prac273591 (ID_usluga), ADD CONSTRAINT FKLista_prac273591 FOREIGN KEY (ID_usluga) REFERENCES Usluga (ID_usluga);
165ALTER TABLE Samochod ADD INDEX FKSamochod893209 (ID_nadwozie), ADD CONSTRAINT FKSamochod893209 FOREIGN KEY (ID_nadwozie) REFERENCES Nadwozie (ID_nadwozie);
166ALTER TABLE Pracownik ADD INDEX FKPracownik406621 (ID_dane_osobowe), ADD CONSTRAINT FKPracownik406621 FOREIGN KEY (ID_dane_osobowe) REFERENCES Dane_osobowe (ID_dane_osobowe);
167ALTER TABLE Klient ADD INDEX FKKlient154308 (ID_dane_osobowe), ADD CONSTRAINT FKKlient154308 FOREIGN KEY (ID_dane_osobowe) REFERENCES Dane_osobowe (ID_dane_osobowe);
168
169
170USE `mydb` ;
171-- -----------------------------------------------------
172-- Placeholder table for view `mydb`.`Seans_info`
173-- -----------------------------------------------------
174
175CREATE TABLE IF NOT EXISTS `mydb`.`Podsumowanie_uslugi` (`'Imie'` INT, `'Nazwisko'` INT, `'Nr_rejestracyjny'` INT, `'Data_zakonczenia'` INT, `'Cena'` INT, `'Opis'` INT);
176
177
178
179-- -----------------------------------------------------
180-- View `mydb`.`Podsumowanie_uslugi`
181-- -----------------------------------------------------
182DROP VIEW IF EXISTS `mydb`.`Podsumowanie_uslugi` ;
183DROP TABLE IF EXISTS `mydb`.`Podsumowanie_uslugi`;
184USE `mydb`;
185CREATE OR REPLACE VIEW `Podsumowanie_uslugi` AS
186 SELECT
187 d.Imie AS 'Imie',
188 d.Nazwisko AS 'Nazwisko',
189 s.Nr_rejestracyjny AS 'Numer rejestracyjny',
190 u.Data_zakonczenia AS 'Data zakonczenia',
191 u.Cena AS 'Cena',
192 u.Opis AS 'Opis'
193 FROM
194 Dane_osobowe d
195 JOIN
196 Klient k ON d.ID_dane_osobowe = k.ID_dane_osobowe
197 JOIN
198 Samochod s ON k.ID_klient = s.ID_klient
199 JOIN
200 Usluga u ON s.VIN = u.VIN;
201
202SET SQL_MODE=@OLD_SQL_MODE;
203SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
204SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;