76 lines
2.1 KiB
SQL
76 lines
2.1 KiB
SQL
SET FOREIGN_KEY_CHECKS = 0;
|
|
|
|
DROP TABLE IF EXISTS fluege;
|
|
DROP TABLE IF EXISTS piloten;
|
|
DROP TABLE IF EXISTS flugzeuge;
|
|
DROP TABLE IF EXISTS mitarbeiter;
|
|
DROP TABLE IF EXISTS users;
|
|
|
|
SET FOREIGN_KEY_CHECKS = 1;
|
|
|
|
CREATE TABLE users (
|
|
Id INT AUTO_INCREMENT PRIMARY KEY,
|
|
Vorname VARCHAR(100) NOT NULL,
|
|
Nachname VARCHAR(100) NOT NULL,
|
|
Email VARCHAR(100) NOT NULL,
|
|
PasswortHash VARCHAR(255) NOT NULL,
|
|
Rolle VARCHAR(50) NOT NULL,
|
|
Stadt VARCHAR(100),
|
|
Anrede VARCHAR(20),
|
|
Geburtsdatum DATE,
|
|
CreatedAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE flugzeuge (
|
|
Id INT AUTO_INCREMENT PRIMARY KEY,
|
|
Modell VARCHAR(100) NOT NULL,
|
|
Plaetze INT NOT NULL,
|
|
Lagerflaeche FLOAT NOT NULL,
|
|
Gewicht FLOAT NOT NULL,
|
|
Kerosinverbrauch FLOAT NOT NULL,
|
|
Stundengeschwindigkeit FLOAT NOT NULL,
|
|
Stundenstand FLOAT NOT NULL,
|
|
Herstellungsdatum DATE NOT NULL,
|
|
IstDefekt BOOLEAN NOT NULL
|
|
);
|
|
|
|
CREATE TABLE piloten (
|
|
Id INT AUTO_INCREMENT PRIMARY KEY,
|
|
Vorname VARCHAR(100) NOT NULL,
|
|
Nachname VARCHAR(100) NOT NULL,
|
|
Flugerfahrung FLOAT NOT NULL,
|
|
Groesse FLOAT NOT NULL,
|
|
Bewertung FLOAT NOT NULL,
|
|
Pilotalter DATE NOT NULL,
|
|
Gender VARCHAR(10),
|
|
IstVerfuegbar BOOLEAN NOT NULL,
|
|
Sprachen TEXT
|
|
);
|
|
|
|
CREATE TABLE fluege (
|
|
Id INT AUTO_INCREMENT PRIMARY KEY,
|
|
Abflugort VARCHAR(100) NOT NULL,
|
|
Zielort VARCHAR(100) NOT NULL,
|
|
Abflugdatum DATETIME NOT NULL,
|
|
Ankunftsdatum DATETIME NOT NULL,
|
|
Flugnummer VARCHAR(20) NOT NULL,
|
|
Preis DECIMAL(10,2) NOT NULL,
|
|
Created DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
FlugzeugId INT NOT NULL,
|
|
PilotId INT NOT NULL,
|
|
ErstelltVon INT NOT NULL,
|
|
FOREIGN KEY (FlugzeugId) REFERENCES flugzeuge(Id),
|
|
FOREIGN KEY (PilotId) REFERENCES piloten(Id),
|
|
FOREIGN KEY (ErstelltVon) REFERENCES users(Id)
|
|
);
|
|
|
|
CREATE TABLE mitarbeiter (
|
|
Id INT AUTO_INCREMENT PRIMARY KEY,
|
|
Vorname VARCHAR(100) NOT NULL,
|
|
Nachname VARCHAR(100) NOT NULL,
|
|
Position VARCHAR(100) NOT NULL,
|
|
MitarbeiterAlter INT NOT NULL,
|
|
ArbeitsstundenProWoche FLOAT NOT NULL,
|
|
IstVerfuegbar BOOLEAN NOT NULL
|
|
);
|