Advertisement
Guest User

Untitled

a guest
Nov 13th, 2018
526
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.08 KB | None | 0 0
  1. DROP DATABASE DBWT;
  2. CREATE DATABASE DBWT;
  3.  
  4. USE DBWT;
  5.  
  6. DROP TABLE IF EXISTS DBWT.Benutzer;
  7. CREATE TABLE Benutzer(
  8. `Nummer` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  9. `Nutzername` VARCHAR(30) NOT NULL UNIQUE,
  10. `Salt` VARCHAR(32) NOT NULL,
  11. `Hash` VARCHAR(24) NOT NULL,
  12. `Anlegedatum` DATE NOT NULL DEFAULT CURRENT_DATE,
  13. `Aktiv` BOOL DEFAULT FALSE NOT NULL,
  14. `Vorname` VARCHAR(30) NOT NULL,
  15. `Nachname` VARCHAR(30) NOT NULL,
  16. `Email` VARCHAR(40) NOT NULL UNIQUE,
  17. `Geburtsdatum` DATE DEFAULT CURRENT_DATE,
  18. `Alter` INT DEFAULT ((DATEDIFF(CURRENT_DATE,`Geburtsdatum`))/365),
  19. `Letzter Login` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  20. PRIMARY KEY(Nummer)
  21.  
  22. );
  23.  
  24. DROP TABLE IF EXISTS DBWT.Gaeste;
  25. CREATE TABLE Gaeste(
  26. `Nummer` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  27. `Grund` VARCHAR(255) NOT NULL DEFAULT('Keine Angabe'),
  28. `Ablaufdatum` DATE DEFAULT (ADDDATE(CURRENT_DATE, INTERVAL 7 DAY)) NOT NULL,
  29.  
  30. PRIMARY KEY(Nummer),
  31. FOREIGN KEY (Nummer) REFERENCES Benutzer(Nummer) ON DELETE CASCADE
  32.  
  33. );
  34.  
  35. DROP TABLE IF EXISTS DBWT.FhAngehoerige;
  36. CREATE TABLE FhAngehoerige(
  37. `Nummer` INT UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
  38. FOREIGN KEY (Nummer) REFERENCES Benutzer(Nummer) ON DELETE CASCADE
  39. );
  40.  
  41.  
  42. DROP TABLE IF EXISTS DBWT.Studenten;
  43. CREATE TABLE Studenten(
  44. `Nummer` INT UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT UNIQUE,
  45. `Matrikelnummer` INT UNIQUE,
  46. `Studiengang` ENUM('ET','INF','ISE','MCD','WI'),
  47. CONSTRAINT CheckMaNumber CHECK (1000000000 > `Matrikelnummer` > 9999999),
  48. FOREIGN KEY(Nummer) REFERENCES FhAngehoerige(Nummer) ON DELETE CASCADE
  49. );
  50.  
  51. DROP TABLE IF EXISTS DBWT.Mitarbeiter;
  52. CREATE TABLE Mitarbeiter(
  53. `Nummer` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  54. `Büro` VARCHAR(20),
  55. `Telefon` VARCHAR(20),
  56. PRIMARY KEY(Nummer),
  57. FOREIGN KEY(Nummer) REFERENCES FhAngehoerige(Nummer) ON DELETE CASCADE
  58. );
  59.  
  60. DROP TABLE IF EXISTS DBWT.Fachbereiche;
  61. CREATE TABLE Fachbereiche(
  62. `ID` INT UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
  63. `Website` VARCHAR(100) DEFAULT('https://www.fh-aachen.de/fachbereiche/') NOT NULL,
  64. `Name` VARCHAR(40) NOT NULL
  65. );
  66.  
  67. DROP TABLE IF EXISTS DBWT.Bilder;
  68. CREATE TABLE Bilder(
  69. `ID` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  70. `Alt-Text` VARCHAR(50) NOT NULL,
  71. `Titel` VARCHAR(50),
  72. `Binärdaten` BLOB NOT NULL
  73.  
  74. );
  75.  
  76. DROP TABLE IF EXISTS DBWT.Kategorien;
  77. CREATE TABLE Kategorien(
  78. `ID` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  79. `Bezeichnung` VARCHAR(255) NOT NULL,
  80. `bilder_ID` INT UNSIGNED NOT NULL,
  81. `unterkat_ID` INT UNSIGNED NOT NULL,
  82. FOREIGN KEY (ID) REFERENCES Bilder(ID),
  83. FOREIGN KEY (unterkat_ID) REFERENCES Kategorien(ID)
  84. );
  85.  
  86. DROP TABLE IF EXISTS DBWT.Mahlzeiten;
  87. CREATE TABLE Mahlzeiten(
  88. `ID` INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
  89. `Beschreibung` VARCHAR(255) NOT NULL,
  90. `Vorrat` INT UNSIGNED NOT NULL DEFAULT 0,
  91. `kategorie_id` INT UNSIGNED NOT NULL,
  92. `Verfügbar` BOOL NOT NULL DEFAULT (Vorrat > 0),
  93. FOREIGN KEY (kategorie_id) REFERENCES Kategorien(ID)
  94. );
  95.  
  96. DROP TABLE IF EXISTS DBWT.Kommentare;
  97. CREATE TABLE Kommentare(
  98. `ID` INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
  99. `Bemerkung` VARCHAR(150),
  100. `Bewertung` VARCHAR(150) NOT NULL DEFAULT('Keine Angabe'),
  101. `benutzer_nummer` INT UNSIGNED NOT NULL UNIQUE,
  102. `mahlzeiten_id` INT UNSIGNED NOT NULL UNIQUE,
  103. FOREIGN KEY (benutzer_nummer) REFERENCES Studenten(Nummer),
  104. FOREIGN KEY (mahlzeiten_id) REFERENCES Mahlzeiten(ID)
  105. );
  106.  
  107. DROP TABLE IF EXISTS DBWT.Bestellungen;
  108. CREATE TABLE Bestellungen(
  109. `Nummer` INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
  110. `Bestellzeitpunkt` TIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  111. `Abholzeitpunkt` TIME DEFAULT Bestellzeitpunkt,
  112. `benutzer_nummer` INT UNSIGNED NOT NULL,
  113. CONSTRAINT zeit CHECK(`Bestellzeitpunkt` <= `Abholzeitpunkt`),
  114. FOREIGN KEY (benutzer_nummer) REFERENCES Benutzer(Nummer)
  115. );
  116.  
  117. DROP TABLE IF EXISTS DBWT.Deklaration;
  118. CREATE TABLE Deklaration(
  119. `Zeichen` VARCHAR(2) NOT NULL PRIMARY KEY,
  120. `Beschriftung` VARCHAR(32) NOT NULL
  121. );
  122.  
  123. DROP TABLE IF EXISTS DBWT.Zutaten;
  124. CREATE TABLE Zutaten(
  125. `ID` INT UNSIGNED NOT NULL PRIMARY KEY,
  126. `Name` VARCHAR(50) NOT NULL,
  127. `Bio` BOOL NOT NULL,
  128. `Vegetarisch` BOOL NOT NULL,
  129. `Vegan` BOOL NOT NULL,
  130. `Glutenfrei` BOOL NOT NULL,
  131. CONSTRAINT id_zahl CHECK(`ID` BETWEEN 00000 AND 99999)
  132. );
  133.  
  134. DROP TABLE IF EXISTS DBWT.Preise;
  135. CREATE TABLE Preise(
  136. `ID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  137. `Jahr` INT UNSIGNED NOT NULL,
  138. `Gastpreis` INT UNSIGNED NOT NULL,
  139. `Studentpreis` INT UNSIGNED,
  140. `MA-Preis` INT UNSIGNED,
  141. CONSTRAINT max_preis CHECK(Gastpreis <= 99.99),
  142. CONSTRAINT studi_preis CHECK(Studentpreis < `MA-Preis`),
  143. FOREIGN KEY (ID) REFERENCES Mahlzeiten(ID) ON DELETE CASCADE
  144. );
  145.  
  146. DROP TABLE IF EXISTS DBWT.befreundet;
  147. CREATE TABLE befreundet(
  148. `benutzer1_id` INT UNSIGNED NOT NULL,
  149. `benutzer2_id` INT UNSIGNED NOT NULL,
  150. CONSTRAINT PK_befreundet PRIMARY KEY (benutzer1_id,benutzer2_id)
  151. );
  152.  
  153. DROP TABLE IF EXISTS DBWT.gehört_zu;
  154. CREATE TABLE gehört_zu(
  155. `benutzer_id` INT UNSIGNED NOT NULL,
  156. `fach_id` INT UNSIGNED NOT NULL,
  157. FOREIGN KEY (`benutzer_id`) REFERENCES FhAngehoerige(`Nummer`),
  158. FOREIGN KEY (`fach_id`) REFERENCES Fachbereiche(`ID`),
  159. CONSTRAINT PK_gehört_zu PRIMARY KEY (`benutzer_id`,`fach_id`)
  160. );
  161.  
  162. DROP TABLE IF EXISTS DBWT.enthält;
  163. CREATE TABLE enthält(
  164. `bestellung_id` INT UNSIGNED NOT NULL,
  165. `mahlzeit_id` INT UNSIGNED NOT NULL,
  166. `Anzahl` INT UNSIGNED NOT NULL,
  167. CONSTRAINT PK_enthält PRIMARY KEY (bestellung_id,mahlzeit_id)
  168. );
  169.  
  170. DROP TABLE IF EXISTS DBWT.braucht;
  171. CREATE TABLE braucht(
  172. `mahlzeiten_id` INT UNSIGNED NOT NULL,
  173. `zeichen` VARCHAR(2) NOT NULL,
  174. CONSTRAINT PK_braucht PRIMARY KEY (mahlzeiten_id,zeichen)
  175. );
  176.  
  177. DROP TABLE IF EXISTS DBWT.enthält_zutaten;
  178. CREATE TABLE enthält_zutaten(
  179. `mahlzeiten_id` INT UNSIGNED NOT NULL,
  180. `zutaten_id` INT UNSIGNED NOT NULL,
  181. CONSTRAINT PK_enthält PRIMARY KEY (mahlzeiten_id,zutaten_id)
  182. );
  183.  
  184. DROP TABLE IF EXISTS DBWT.hat;
  185. CREATE TABLE hat(
  186. `mahlzeiten_id` INT UNSIGNED NOT NULL,
  187. `bilder_id` INT UNSIGNED NOT NULL,
  188. CONSTRAINT PK_hat PRIMARY KEY (mahlzeiten_id,bilder_id)
  189. );
  190.  
  191. INSERT INTO Benutzer(Nutzername, Salt, `Hash`, Vorname, Nachname, Email, Geburtsdatum)
  192. VALUES('gregor96','d','wse','Georgios','Nikas','nikasgeorgios7@gmail.com','1996-12-30');
  193. INSERT INTO Benutzer(Nutzername, Salt, `Hash`, Vorname, Nachname, Email, Geburtsdatum)
  194. VALUES('nico','d','wse','Nico','Gartmann','nico.g@gmail.com','1997-09-08');
  195. INSERT INTO FhAngehoerige(Nummer) VALUES(2);
  196. INSERT INTO Mitarbeiter(Nummer, Telefon) VALUES(2,'02461347233');
  197.  
  198. INSERT INTO Benutzer(Nutzername, Salt, `Hash`, Vorname, Nachname, Email, Geburtsdatum)
  199. VALUES('pascal','d','wse','Pascal','Truglio','pt@gmail.com','1996-11-05');
  200. INSERT INTO FhAngehoerige(Nummer) VALUES(3);
  201. INSERT INTO Mitarbeiter(Nummer, Telefon) VALUES(3, '024613299992');
  202.  
  203. DELETE FROM Benutzer WHERE `Nummer`=2;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement