Datenbanken/Lösung/Aufgabe 2 - CREATE Tables.sql

131 lines
3.3 KiB
SQL

USE project;
CREATE TABLE IF NOT EXISTS Produkt
(
ProduktID int AUTO_INCREMENT,
Produktname VARCHAR(100),
vegetarisch tinyint(1),
vegan tinyint(1),
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),
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,
Portionsgroesse varchar(100),
Menge int,
Einheit varchar(100),
primary key (MengenID),
foreign key (ProduktID) references Produkt (ProduktID)
);
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,
ProduktID int,
foreign key (MenuID) references Menu (MenuID),
foreign key (ProduktID) references Produkt (ProduktID),
primary key (MenuID, ProduktID)
);
CREATE TABLE IF NOT EXISTS Allergie
(
PersonID int,
AllergenID int,
foreign key (PersonID) references Person (PersonID),
foreign key (AllergenID) references Allergen (AllergenID),
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),
foreign key (E_Nummer) references Zusatzstoff (E_Nummer),
foreign key (Anwendungsgrund) references Zusatzstoffklase(Anwendungsgrund),
primary key (ProduktID, E_Nummer, Anwendungsgrund)
);
CREATE TABLE IF NOT EXISTS Zusatzstoffunvertraeglichkeit
(
PersonID int,
E_Nummer varchar(5),
foreign key (PersonID) references Person (PersonID),
foreign key (E_Nummer) references Zusatzstoff (E_Nummer),
primary key (PersonID, E_Nummer)
);
CREATE TABLE IF NOT EXISTS enthaeltAllergen
(
AllergenID int,
ProduktID int,
spuren_von tinyint(1),
foreign key (AllergenID) references Allergen (AllergenID),
foreign key (ProduktID) references Produkt (ProduktID),
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),
foreign key (MenuID) references Menu (MenuID),
primary key (TransaktionsID)
)