Datenbanken/Lösung/Aufgabe 2 - CREATE Tables.sql
2022-05-18 19:31:03 +02:00

127 lines
3.6 KiB
SQL

CREATE DATABASE IF NOT EXISTS project;
USE project;
CREATE TABLE IF NOT EXISTS Produkt
(
ProduktID int AUTO_INCREMENT,
Produktname VARCHAR(100),
primary key (ProduktID)
);
CREATE TABLE IF NOT EXISTS Naehrwerte
(
ProduktID int,
Menge int,
Einheit varchar(100),
Eiweiss double,
Kohlenhydrate double,
Fett double,
Brennwert double,
foreign key (ProduktID) references Produkt (ProduktID) ON DELETE RESTRICT ON UPDATE CASCADE,
primary key (ProduktID, Menge, Einheit)
);
CREATE TABLE IF NOT EXISTS Allergen
(
AllergenID int AUTO_INCREMENT,
Allergenbezeichnung varchar(100),
primary key (AllergenID)
);
CREATE TABLE IF NOT EXISTS Zusatzstoffklase
(
Anwendungsgrund varchar(5),
Anwendungsgrundbezeichnung varchar(100),
primary key (Anwendungsgrund)
);
CREATE TABLE IF NOT EXISTS Zusatzstoff
(
E_Nummer varchar(5),
Zusatzstoffbezeichnung varchar(100),
primary key (E_Nummer)
);
CREATE TABLE IF NOT EXISTS Menge
(
MengenID int AUTO_INCREMENT,
ProduktID int,
Menge int,
Einheit varchar(100),
primary key (MengenID),
foreign key (ProduktID) references Produkt (ProduktID) ON DELETE RESTRICT ON UPDATE CASCADE
);
CREATE TABLE IF NOT EXISTS Person
(
PersonID int AUTO_INCREMENT,
Personenname varchar(100),
Personenvorname varchar(100),
Naehrwertziel int,
Ernaerungsstil varchar(100),
primary key (PersonID)
);
CREATE TABLE IF NOT EXISTS Menu
(
MenuID int AUTO_INCREMENT,
Menuname varchar(100),
primary key (MenuID)
);
CREATE TABLE IF NOT EXISTS Menucontent
(
MenuID int,
MengenID int,
foreign key (MenuID) references Menu (MenuID) ON DELETE RESTRICT ON UPDATE CASCADE,
foreign key (MengenID) references Menge (MengenID) ON DELETE RESTRICT ON UPDATE CASCADE,
primary key (MenuID, MengenID)
);
CREATE TABLE IF NOT EXISTS Allergie
(
PersonID int,
AllergenID int,
foreign key (PersonID) references Person (PersonID) ON DELETE CASCADE ON UPDATE CASCADE,
foreign key (AllergenID) references Allergen (AllergenID) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (PersonID, AllergenID)
);
CREATE TABLE IF NOT EXISTS enthaeltZusatzstoff
(
ProduktID int,
E_Nummer varchar(5),
Anwendungsgrund varchar(5),
foreign key (ProduktID) references Produkt (ProduktID) ON DELETE CASCADE ON UPDATE CASCADE,
foreign key (E_Nummer) references Zusatzstoff (E_Nummer) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (ProduktID, E_Nummer)
);
CREATE TABLE IF NOT EXISTS Zusatzstoffunvertraeglichkeit
(
PersonID int,
E_Nummer varchar(5),
foreign key (PersonID) references Person (PersonID) ON DELETE CASCADE ON UPDATE CASCADE,
foreign key (E_Nummer) references Zusatzstoff (E_Nummer) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (PersonID, E_Nummer)
);
CREATE TABLE IF NOT EXISTS enthaeltAllergen
(
AllergenID int,
ProduktID int,
foreign key (AllergenID) references Allergen (AllergenID) ON DELETE CASCADE ON UPDATE CASCADE,
foreign key (ProduktID) references Produkt (ProduktID) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (AllergenID, ProduktID)
);
CREATE TABLE IF NOT EXISTS konsumiert
(
TransaktionsID int AUTO_INCREMENT,
PersonID int,
MenuID int,
Datum datetime,
foreign key (PersonID) references Person (PersonID) ON DELETE CASCADE ON UPDATE CASCADE,
foreign key (MenuID) references Menu (MenuID) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (TransaktionsID)
)