DROP DATABASE if EXISTS awp_11fi5_tournee;
CREATE DATABASE if NOT exists awp_11fi5_tournee;

USE awp_11fi5_tournee;

CREATE TABLE Künstler(
	Künstler_ID INT AUTO_INCREMENT,
	KünstlerName VARCHAR(40),
	Straße VARCHAR(40),
	Ort VARCHAR(40),
	PLZ VARCHAR(10),
	PRIMARY KEY(Künstler_ID)
)ENGINE=INNODB;

CREATE TABLE Tournee(
	Tournee_ID INT AUTO_INCREMENT,
	Tourneename VARCHAR(40),
	PRIMARY KEY(Tournee_ID)
)ENGINE=INNODB;

CREATE TABLE Location(
	Location_ID INT AUTO_INCREMENT,
	LocationName VARCHAR(40),
	Straße VARCHAR(40),
	Ort VARCHAR(40),
	PLZ VARCHAR(10),
	PRIMARY KEY(Location_ID)
)ENGINE=INNODB;

CREATE TABLE Preiskategorie(
	Kategorie_ID INT AUTO_INCREMENT,
	Preisstufe VARCHAR(20),
	PRIMARY KEY(Kategorie_ID)
)ENGINE=INNODB;

CREATE TABLE Besucher(
	Besucher_ID INT AUTO_INCREMENT,
	Email VARCHAR(60),
	PRIMARY KEY(Besucher_ID)
)ENGINE=INNODB;

CREATE TABLE Veranstaltung(
	Veranstaltung_ID INT AUTO_INCREMENT,
	Veranstaltung VARCHAR(60),
	Beginn TIME,
	Datum DATE,
	Location_ID INT,
	Tournee_ID INT,
	PRIMARY KEY(Veranstaltung_ID),
	FOREIGN KEY(Location_ID) REFERENCES Location(Location_ID),
	FOREIGN KEY(Tournee_ID) REFERENCES Tournee(Tournee_ID)
)ENGINE=INNODB;

CREATE TABLE Veranstaltung_Künstler(
	Künstler_ID INT,
	Veranstaltung_ID INT,
	GageKünstler DECIMAL(12,2),
	PRIMARY KEY(Künstler_ID, Veranstaltung_ID),
	FOREIGN KEY(Künstler_ID) REFERENCES Künstler(Künstler_ID),
	FOREIGN KEY(Veranstaltung_ID) REFERENCES Veranstaltung(Veranstaltung_ID)
)ENGINE=INNODB;

CREATE TABLE Preiskat_Veranstaltung(
	Kategorie_ID INT,
	Veranstaltung_ID INT,
	PreisEuro DECIMAL(12,2),
	PRIMARY KEY(Veranstaltung_ID, Kategorie_ID),
	FOREIGN KEY(Kategorie_ID) REFERENCES Preiskategorie(Kategorie_ID),
	FOREIGN KEY(Veranstaltung_ID) REFERENCES Veranstaltung(Veranstaltung_ID)
)ENGINE=INNODB;

CREATE TABLE Besucher_Veranstaltung(
	Besucher_ID INT,
	Veranstaltung_ID INT,
	Platz VARCHAR(20),
	PRIMARY KEY(Besucher_ID, Veranstaltung_ID),
	FOREIGN KEY(Besucher_ID) REFERENCES Besucher(Besucher_ID),
	FOREIGN KEY(Veranstaltung_ID) REFERENCES Veranstaltung(Veranstaltung_ID)
)ENGINE=INNODB;

CREATE TABLE Preiskat_Location(
	Kategorie_ID INT,
	Location_ID INT,
	PRIMARY KEY(Kategorie_ID, Location_ID),
	FOREIGN KEY(Kategorie_ID) REFERENCES Preiskategorie(Kategorie_ID),
	FOREIGN KEY(Location_ID) REFERENCES Location(Location_ID)
)ENGINE=INNODB;
