· 9 years ago · Nov 07, 2016, 12:24 PM
1CREATE DATABASE IF NOT EXISTS reparaturen;
2
3USE reparaturen;
4
5CREATE TABLE fehler
6(
7 id INT PRIMARY KEY AUTO_INCREMENT,
8 fehlercode INT,
9 fehlerbeschreibung VARCHAR(200)
10);
11
12CREATE TABLE hersteller
13(
14 id INT PRIMARY KEY AUTO_INCREMENT,
15 name VARCHAR(50) NOT NULL
16);
17
18CREATE TABLE reparaturauftrag
19(
20 auftragsnummer INT PRIMARY KEY,
21 anfertigungsdatum DATE
22);
23
24CREATE TABLE lehrer
25(
26 id INT PRIMARY KEY AUTO_INCREMENT,
27 lehrerkuerzel VARCHAR(4),
28 strasse VARCHAR(30),
29 name VARCHAR(30),
30 stadt VARCHAR(30),
31 plz INT,
32 telefonnummer BIGINT
33);
34
35CREATE TABLE raum
36(
37 id INT PRIMARY KEY AUTO_INCREMENT,
38 raumtyp INT,
39 raumbezeichnung VARCHAR(50),
40 anzahl_plaetze INT,
41 klassenlehrer_id INT,
42 CONSTRAINT cRaKl
43 FOREIGN KEY (klassenlehrer_id) REFERENCES lehrer(id)
44 ON UPDATE CASCADE ON DELETE SET NULL
45);
46
47CREATE TABLE hardware
48(
49 id INT PRIMARY KEY AUTO_INCREMENT,
50 modell VARCHAR(50) NOT NULL,
51 status INT DEFAULT 0,
52 Seriennummer VARCHAR(50) NOT NULL,
53 hersteller_id INT,
54 raum_id INT,
55 CONSTRAINT cHaHe
56 FOREIGN KEY (hersteller_id) REFERENCES hersteller(id)
57 ON UPDATE CASCADE ON DELETE SET NULL,
58 CONSTRAINT cHaRa
59 FOREIGN KEY (raum_id) REFERENCES raum(id)
60 ON UPDATE CASCADE ON DELETE SET NULL
61);
62
63
64
65
66
67CREATE TABLE reparatur
68(
69 id INT PRIMARY KEY AUTO_INCREMENT,
70 auslieferungsdatum DATE,
71 rueckgabedatum DATE,
72 kommentar VARCHAR(200),
73 hardware_id INT,
74 auftragsnummer INT,
75 fehler_id INT,
76 CONSTRAINT cReHa
77 FOREIGN KEY (hardware_id) REFERENCES hardware(id)
78 ON UPDATE CASCADE ON DELETE SET NULL,
79 CONSTRAINT cReAn
80 FOREIGN KEY (auftragsnummer) REFERENCES reparaturauftrag(auftragsnummer)
81 ON UPDATE CASCADE ON DELETE SET NULL,
82 CONSTRAINT cReFe
83 FOREIGN KEY (fehler_id) REFERENCES fehler(id)
84 ON UPDATE CASCADE ON DELETE SET NULL
85);
86
87CREATE TABLE raumnutzung
88(
89 raum_id INT,
90 lehrer_id INT,
91 CONSTRAINT cRaRa
92 FOREIGN KEY (raum_id) REFERENCES raum(id)
93 ON UPDATE CASCADE ON DELETE RESTRICT,
94 CONSTRAINT cRaLe
95 FOREIGN KEY (lehrer_id) REFERENCES lehrer(id)
96 ON UPDATE CASCADE ON DELETE RESTRICT,
97
98 PRIMARY KEY(raum_id, lehrer_id)
99);