· 6 years ago · Jul 04, 2019, 12:54 PM
1/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
2CREATE DATABASE IF NOT EXISTS ba2019bklmpw;
3
4SET NAMES 'utf8';
5
6USE `ba2019bklmpw`;
7
8CREATE TABLE mandant (
9 id int(3) unsigned auto_increment NOT NULL,
10 mandant_nachname varchar(20) NOT NULL,
11 mandant_vorname varchar(20),
12 mandant_plz int(5) unsigned NOT NULL,
13 mandant_ort varchar(30) NOT NULL,
14
15 PRIMARY KEY (id)
16);
17
18
19CREATE TABLE kino (
20 id int(2) unsigned auto_increment NOT NULL,
21 kino_name varchar(20) NOT NULL,
22 kino_kapazitaet int(4) unsigned NOT NULL,
23 kino_strasseNr varchar(30) NOT NULL,
24 kino_plz int(5) unsigned NOT NULL,
25 kino_ort varchar(30) NOT NULL,
26 mandant_id int(3) unsigned NOT NULL,
27
28 PRIMARY KEY (id, mandant_id),
29 CONSTRAINT pk_kino_mandant
30 FOREIGN KEY (mandant_id) REFERENCES mandant (id) ON DELETE CASCADE ON UPDATE RESTRICT
31);
32
33
34CREATE TABLE saal (
35 id int(2) unsigned auto_increment NOT NULL,
36 saal_name varchar(20) NOT NULL,
37 saal_kapazitaet int(3) unsigned NOT NULL,
38 saal_beschreibung varchar(30),
39 kino_id int(2) unsigned NOT NULL,
40 mandant_id int(3) unsigned NOT NULL,
41
42 PRIMARY KEY (id, kino_id, mandant_id),
43 CONSTRAINT pk_saal_kino_
44 FOREIGN KEY (kino_id) REFERENCES kino (id) ON DELETE CASCADE ON UPDATE RESTRICT,
45 CONSTRAINT pk_saal_mandant
46 FOREIGN KEY (mandant_id) REFERENCES mandant (id) ON DELETE CASCADE ON UPDATE RESTRICT
47);
48
49
50CREATE TABLE sitzplatz (
51 id int(3) unsigned auto_increment NOT NULL,
52 sitzplatz_reihe varchar(2) NOT NULL,
53 sitzplatz_kategorie enum('Parkett','Loge'),
54 saal_id int(2) unsigned NOT NULL,
55 kino_id int(2) unsigned NOT NULL,
56 mandant_id int(3) unsigned NOT NULL,
57
58 PRIMARY KEY (id, saal_id, kino_id, mandant_id),
59 CONSTRAINT pk_sitzplatz_saal
60 FOREIGN KEY (saal_id) REFERENCES saal (id) ON DELETE CASCADE ON UPDATE RESTRICT,
61 CONSTRAINT pk_sitzplatz_kino
62 FOREIGN KEY (kino_id) REFERENCES kino (id) ON DELETE CASCADE ON UPDATE RESTRICT,
63 CONSTRAINT pk_sitzplatz_mandant
64 FOREIGN KEY (mandant_id) REFERENCES mandant (id) ON DELETE CASCADE ON UPDATE RESTRICT
65);
66
67
68CREATE TABLE film (
69 id int(3) unsigned auto_increment NOT NULL,
70 film_titel varchar(45) NOT NULL,
71 film_beschreibung varchar(45) DEFAULT NULL,
72 film_erscheinunsdatum date NOT NULL,
73 film_genre enum('Drama','Action','Komödie','Thriller','Dokumentation','Erotik','Animation', 'Biografie'),
74 film_dauermin decimal(3,0) DEFAULT NULL,
75 film_freigabe enum ('ohne','ab 6','ab 12','ab 16','ab 18'),
76
77 PRIMARY KEY (id)
78);
79
80
81CREATE TABLE vorstellung (
82 id int(6) unsigned auto_increment NOT NULL,
83 film_id int(3) unsigned NOT NULL,
84 saal_id int(2) unsigned NOT NULL,
85 vorstellung_start datetime NOT NULL,
86 kino_id int(2) unsigned NOT NULL,
87 mandant_id int(3) unsigned NOT NULL,
88
89 PRIMARY KEY (id, mandant_id, kino_id, saal_id, vorstellung_start),
90 CONSTRAINT pk_vorstellung_mandant FOREIGN KEY (mandant_id) REFERENCES mandant (id) ON DELETE CASCADE ON UPDATE RESTRICT,
91 CONSTRAINT pk_vorstellung_kino FOREIGN KEY (kino_id) REFERENCES kino (id) ON DELETE CASCADE ON UPDATE RESTRICT,
92 CONSTRAINT pk_vorstellung_saal FOREIGN KEY (saal_id) REFERENCES saal (id) ON DELETE CASCADE ON UPDATE RESTRICT
93);
94
95
96ALTER TABLE vorstellung
97ADD UNIQUE INDEX Projection_ak_1 (saal_id, vorstellung_start);
98
99CREATE TABLE kunde (
100 id int(6) unsigned auto_increment NOT NULL,
101 kunde_name varchar(20) NOT NULL,
102 kunde_vorname varchar(20) NOT NULL,
103 kunde_email varchar(30) NOT NULL,
104 kunde_passwort varchar(10) NOT NULL,
105 mandant_id int(3) unsigned NOT NULL,
106
107 PRIMARY KEY (id, mandant_id),
108 CONSTRAINT pk_kunde_mandant FOREIGN KEY (mandant_id) REFERENCES mandant (id) ON DELETE CASCADE ON UPDATE RESTRICT
109);
110
111
112CREATE TABLE reservierung (
113 id int(6) unsigned auto_increment NOT NULL,
114 vorstellung_id int(6) unsigned NOT NULL,
115 kunde_id int(6) unsigned NOT NULL,
116 mandant_id int(3) unsigned NOT NULL,
117 reservierung_anzahl int(6) unsigned NOT NULL,
118
119 PRIMARY KEY (id, vorstellung_id, mandant_id, kunde_id),
120 CONSTRAINT pk_reservierung_vorstellung FOREIGN KEY (vorstellung_id) REFERENCES vorstellung (id) ON DELETE CASCADE ON UPDATE RESTRICT,
121 CONSTRAINT pk_reservierung_mandat FOREIGN KEY (mandant_id) REFERENCES mandant (id) ON DELETE CASCADE ON UPDATE RESTRICT,
122 CONSTRAINT pk_reservierung_kunde FOREIGN KEY (kunde_id) REFERENCES kunde (id) ON DELETE CASCADE ON UPDATE RESTRICT
123);
124
125
126CREATE TABLE belegung (
127 reservierung_id int(6) unsigned NOT NULL,
128 vorstellung_id int(6) unsigned NOT NULL,
129 sitzplatz_id int(3) unsigned NOT NULL,
130 mandant_id int(3) unsigned NOT NULL,
131 saal_id int(2) unsigned NOT NULL,
132 kino_id int(2) unsigned NOT NULL,
133
134 PRIMARY KEY (reservierung_id, vorstellung_id, sitzplatz_id),
135 CONSTRAINT pk_belegung_reservierung FOREIGN KEY (reservierung_id) REFERENCES reservierung (id) ON DELETE CASCADE ON UPDATE RESTRICT,
136 CONSTRAINT pk_belegung_vorstellung FOREIGN KEY (vorstellung_id) REFERENCES vorstellung (id) ON DELETE CASCADE ON UPDATE RESTRICT,
137 CONSTRAINT pk_belegung_sitzplatz FOREIGN KEY (sitzplatz_id) REFERENCES sitzplatz (id) ON DELETE CASCADE ON UPDATE RESTRICT
138);
139
140
141INSERT INTO mandant VALUES
142(1, 'Mustermann', 'Max', 93047, 'Regensburg');
143
144
145INSERT INTO kino VALUES
146(1, 'Cinemaxx Regensburg', 2052, 'Sesamstrasse 3', 93047, 'Regensburg', 1),
147(2, 'Cinemaxx München', 1501, 'Milchstrasse 5', 80331, 'München', 1);
148
149
150INSERT INTO film VALUES
151(1, 'X-Men: Dark Phoenix', 'Viertes Action-Spektakel zur Vorgeschichte der Supermutanten, in dem Jean Grey (Sophie Turner) durch ihre Ängste zum "Dark Phoenix" wird und damit die Feindschaft zwischen Xaviers X-Men und Magneto auslöst.', '2019-07-01', 'Action', 114, 'ohne'),
152(2, 'Godzilla 2: King of the Monsters', 'Godzilla und andere Monster liefern sich erbitterte Kämpfe auf der Erde.', '2019-07-02', 'Thriller', 132, 'ab 16'),
153(3, 'Rocketman', 'Bildgewaltige Filmbiografie über die Popmusik-Ikone Sir Elton John mit Taron Egerton ("Kingsman") in der Hauptrolle.', '2019-07-03', 'Dokumentation', 121, 'ohne'),
154(4, 'Pokemon Meisterdetektiv Pickachu', 'Erstes Live-Action-Pokémon-Abenteuer, in dem Pikachu einen kniffligen Fall lösen muss. Menschliche Unterstützung erhält er von Justice Smith, Bill Nighy und Rita Ora.\r\n\r\n', '2019-07-04', 'Animation', 105, 'ab 6'),
155(5, 'John Wick: Kapitel 3', 'Der dritte Teil der Action-Kultreihe mit Keanu Reeves macht da weiter, wo Teil 2 mit dem Eklat im Hotel Continental endete. Das heißt: John gegen den Rest der Welt!\r\n\r\n', '2019-07-05', 'Action', 132, 'ab 18'),
156(6, 'Avengers: Endgame', 'Episches Finale der Marvel-Saga rund um die Avengers-Helden Thor (Chris Hemsworth), Iron Man (Robert Downey Jr.), Captain America (Chris Evans), Black Widow (Scarlett Johansson), Hulk (Mark Ruffalo) und Hawkeye (Jeremy Renner).\r\n\r\n', '2019-07-06', 'Action', 181, 'ab 16'),
157(7, 'Alladin', 'EIN TRAUM WIRD WAHR! Voller Action, Romantik und ganz viel Humor! Erlebe die einzigartige Magie von Disneys Aladdin auf völlig neue Weise, denn die opulente Realverfilmung lässt keine Wünsche offen.', '2019-07-07', 'Erotik', 128, 'ab 18'),
158(8, 'TKKG', 'Ein Fall für TKKG: Die legendäre Ermittler-Bande ist zurück und darf einen Fall auf der Kinoleinwand lösen!', '2019-07-08', 'Komödie', 96, 'ab 6');
159
160
161INSERT INTO saal VALUES
162(1, 'Saal 1', 306, '', 1, 1),
163(2, 'Saal 2', 295, '', 1, 1),
164(3, 'Saal 3', 301, '', 2, 1);
165
166
167INSERT INTO kunde VALUES
168(1, 'Harald', 'Müllner', '1234567', 'm.h@test.de', 1),
169(2, 'Lukas', 'Schmidt', 'abcde', 's.l@test.de', 1),
170(3, 'Larissa', 'Schneider', 'passwort', 'l.s@test.de', 1),
171(4, 'Alex', 'Fischer', 'cecjobce', 'a.f@test.de', 1),
172(5, 'Lasse', 'Meyer', 'dfernervr', 'l.m@test.de', 1),
173(6, 'Peter', 'Weber', 'qwertz', 'p.w@test.de', 1);
174
175
176INSERT INTO vorstellung VALUES
177(1, 1, 1, '2019-07-01 20:00:00',1, 1),
178(2, 2, 1, '2019-07-02 20:00:00',1, 1),
179(3, 3, 1, '2019-07-03 20:00:00',2, 1),
180(4, 4, 1, '2019-07-04 20:00:00',1, 1),
181(5, 5, 1, '2019-07-05 20:00:00',1, 1),
182(6, 6, 1, '2019-07-06 20:00:00',2, 1),
183(7, 7, 1, '2019-07-07 20:00:00',2, 1),
184(8, 8, 1, '2019-07-08 20:00:00',1, 1),
185(9, 1, 3, '2019-07-09 20:00:00',1, 1),
186(10, 5, 3, '2019-07-09 22:00:00',2, 1),
187(83, 5, 2, '2019-07-05 22:00:00',2, 1);
188
189
190INSERT INTO sitzplatz VALUES
191(1, 'A', 'Parkett', 1, 1, 1),
192(3, 'A','Parkett', 1, 1, 1),
193(4, 'A','Parkett', 1, 1, 1),
194(5, 'A', 'Parkett', 1, 1, 1),
195(6, 'A','Parkett', 1, 1, 1),
196(7, 'B','Parkett', 1, 1, 1),
197(8, 'B','Loge', 1, 1, 1),
198(9, 'B','Parkett', 1, 1, 1),
199(10, 'B','Parkett', 1, 1, 1),
200(11, 'B','Loge', 2, 1, 1),
201(12, 'A','Parkett', 2, 1, 1),
202(13, 'A','Parkett', 2, 1, 1),
203(14, 'A','Parkett', 2, 1, 1),
204(15, 'A','Parkett', 2, 1, 1),
205(16, 'A','Parkett', 2, 1, 1),
206(17, 'B','Parkett', 2, 1, 1),
207(18, 'B','Parkett', 2, 1, 1),
208(19, 'B','Parkett', 2, 1, 1),
209(20, 'B','Parkett', 2, 1, 1),
210(21, 'B','Parkett', 3, 2, 1),
211(22, 'A','Parkett', 3, 2, 1),
212(23, 'A','Parkett', 3, 2, 1),
213(24, 'A','Parkett', 3, 2, 1),
214(25, 'A','Parkett', 3, 2, 1),
215(26, 'A','Parkett', 3, 2, 1),
216(27, 'B','Parkett', 3, 2, 1),
217(28, 'B','Parkett', 3, 2, 1),
218(29, 'B','Parkett', 3, 2, 1),
219(30, 'B','Parkett', 3, 2, 1),
220(31, 'B','Parkett', 3, 2, 1);
221
222
223INSERT INTO reservierung VALUES
224(1, 1, 1, 1, 1),
225(2, 1, 2, 1, 2),
226(3, 1, 3, 1, 3),
227(4, 2, 4, 1, 2),
228(5, 2, 5, 1, 2),
229(6, 2, 6, 1, 4),
230(7, 3, 1, 1, 3),
231(8, 4, 2, 1, 4),
232(9, 5, 3, 1, 2),
233(10, 5, 4, 1, 1),
234(11, 6, 5, 1, 2),
235(12, 6, 6, 1, 2),
236(13, 6, 1, 1, 1),
237(14, 7, 2, 1, 1),
238(15, 9, 3, 1, 4),
239(16, 9, 4, 1, 2),
240(17, 9, 5, 1, 1),
241(18, 8, 6, 1, 2),
242(19, 8, 1, 1, 4),
243(20, 10, 2, 1, 1),
244(21, 10, 3, 1,3),
245(22, 10, 4, 1,3),
246(23, 10, 5, 1, 1),
247(24, 10, 6, 1, 3),
248(25, 10, 1, 1, 2);
249
250
251INSERT INTO belegung VALUES
252(1, 1, 1, 1, 2, 1),
253(2, 1, 3, 1, 2, 1),
254(2, 2, 4, 1, 2, 1),
255(3, 1, 4, 1, 2, 1),
256(3, 1, 5, 1, 2, 1),
257(3, 1, 7, 1, 2, 1),
258(4, 2, 7, 1, 1, 1),
259(4, 2, 8, 1, 1, 1),
260(5, 2, 9, 1, 1, 1),
261(5, 2, 10, 1, 1, 1),
262(6, 2, 11, 1, 1, 1),
263(6, 2, 12, 1, 1, 1),
264(6, 2, 13, 1, 1, 1),
265(6, 2, 14, 1, 1, 1),
266(7, 3, 1, 1, 3, 2),
267(7, 3, 3, 1, 3, 2),
268(7, 3, 4, 1, 3, 2),
269(8, 4, 7, 1, 3, 2);
270
271/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;