· 9 years ago · Nov 04, 2016, 10:26 PM
1
2
3
4IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Student]') AND type in (N'U'))
5DROP TABLE [Student]
6
7IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Mitarbeiter]') AND type in (N'U'))
8DROP TABLE [Mitarbeiter]
9
10IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Gast]') AND type in (N'U'))
11DROP TABLE [Gast]
12
13IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[FENutzer_befreundet_mit_FENutzer]') AND type in (N'U'))
14DROP TABLE [FENutzer_befreundet_mit_FENutzer]
15
16IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Preis]') AND type in (N'U'))
17DROP TABLE [Preis]
18
19IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Produkt_hat_Zutat]') AND type in (N'U'))
20DROP TABLE [Produkt_hat_Zutat]
21
22IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Zutat]') AND type in (N'U'))
23DROP TABLE [Zutat]
24
25IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Produkt_hat_Zutat]') AND type in (N'U'))
26DROP TABLE [Produkt_hat_Zutat]
27
28IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Zahl_Pro_FE]') AND type in (N'U'))
29DROP TABLE [Zahl_Pro_FE]
30
31IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Produkt]') AND type in (N'U'))
32DROP TABLE [Produkt]
33
34IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Zahlung]') AND type in (N'U'))
35DROP TABLE [Zahlung]
36
37IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Bild]') AND type in (N'U'))
38DROP TABLE [Bild]
39
40IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Bewertung]') AND type in (N'U'))
41DROP TABLE [Bewertung]
42
43IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[FH-Ang]') AND type in (N'U'))
44DROP TABLE [FH-Ang]
45
46IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[FE-Nutzer]') AND type in (N'U'))
47DROP TABLE [FE-Nutzer]
48
49IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Kategorie]') AND type in (N'U'))
50DROP TABLE [Kategorie]
51
52IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[BenutzerHatRechte]') AND type in (N'U'))
53DROP TABLE [BenutzerHatRechte]
54
55IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Rechte]') AND type in (N'U'))
56DROP TABLE [Rechte]
57
58IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[BE-Nutzer]') AND type in (N'U'))
59DROP TABLE [BE-Nutzer]
60
61
62
63
64
65
66 create table [BE-Nutzer] (
67 ID INT PRIMARY KEY,
68 Admin_ varchar (50) Not Null,
69 LastLog smalldatetime Not Null,
70 mail varchar(50) Not Null
71 )
72
73 create table [Rechte] (
74 Tabelle varchar(50) Not Null,
75 ID INT PRIMARY KEY Not Null
76 )
77
78 -- Verknüpfung BE-Nutzer - Rechte -------------------------
79 create table [BenutzerHatRechte](
80 BENutzerID INT Foreign KEY references [BE-Nutzer] (ID) Not Null,
81 RechteID INT Foreign KEY references Rechte(ID) Not Null,
82 constraint benutzerechte PRIMARY KEY(BENutzerID,RechteID))
83 -----------------------------------------------------------
84
85
86
87 create table [Kategorie](
88 ID int PRIMARY KEY,
89 Bezeichnung varchar(50),
90 Oberkategorie INT Null foreign Key references Kategorie (ID) --Tabelle zeigt auf sich selber--
91 )
92
93 create table [FE-Nutzer](
94 Auth varchar(1000) Not Null,
95 ID int PRIMARY KEY,
96 Aktiv varchar(20) Not Null,
97 LastLog smalldatetime Not Null,
98 [BE-NutzerID] INT Foreign KEY references [BE-Nutzer](ID)
99 )
100
101 create table [FH-Ang](
102 ID INT Primary Key Foreign Key references [FE-Nutzer] (ID),
103 mail varchar(100) Not Null Unique,
104 name varchar(100) Not Null,
105 fachbereich varchar(100) Not Null)
106
107 create table [Bewertung](
108 ID int PRIMARY KEY,
109 Sichtungen varchar(1000) Not Null,
110 Note int Not Null,
111 Bemerkung varchar(1000) Not Null,
112 [FH-Ang ID] INT Foreign KEY references [FH-Ang](ID),
113 )
114
115 create table [Bild](
116 ID int PRIMARY KEY,
117 Binardaten binary(1000) Not Null,
118 Alttext varchar(1000) Not Null,
119 Title varchar(100) Not Null,
120 Unterschrift varchar(100),
121 [Bild ID] INT Foreign KEY references [Bild](ID)
122 )
123
124 create table [Zahlung](
125 ID int PRIMARY KEY,
126 Status_ varchar(100) Not Null,
127 Zeitstempel timestamp Not Null,
128 Aut_Server varchar(100) Not Null,
129 Betrag int)
130 ALTER TABLE Zahlung
131 ADD CONSTRAINT Status_ CHECK (Status_= 10 OR Status_= 20 OR Status_= 30);
132
133 create table [Produkt](
134 ID int PRIMARY KEY,
135 von smalldatetime Not Null,
136 bis smalldatetime Not Null,
137 Name varchar(100) Not Null,
138 Beschreibung varchar(1000) Not Null,
139 [FH-Ang ID] INT Foreign KEY references [FH-Ang](ID),
140 [Bild ID] INT Foreign KEY references [Bild](ID),
141 [Kategorie ID] INT Foreign KEY references [Kategorie](ID),
142 [FE-Nutzer] INT Foreign KEY references [FE-Nutzer](ID))
143
144
145 -- Verknüpfung Zahlung_Produkt_FENutzer -------------------------
146 create table [Zahl_Pro_FE](
147 FENutzerID INT Foreign KEY references [FE-Nutzer] (ID),
148 ProduktID INT Foreign KEY references Produkt (ID),
149 ZahlungID INT Foreign KEY references Zahlung(ID),
150 constraint ZAHL_PRO_FE PRIMARY KEY(ZahlungID,ProduktID)) --Primärschlüssel macht den Zahlungschlüssel einzigartig--
151 -----------------------------------------------------------
152
153 create table [Zutat] (
154 Bezeichnung varchar(100) Not Null,
155 ID int PRIMARY KEY
156 )
157
158 -- Verknüpfung BE-Nutter - Rechte --
159 create table [Produkt_hat_Zutat](
160 ProduktID INT Foreign KEY references Produkt (ID),
161 ZutatID INT Foreign KEY references Zutat (ID),
162 constraint benutzerechte PRIMARY KEY(ProduktID,ZutatID))
163 -----------------------------------
164
165 create table [Preis] (
166 Id int PRIMARY KEY,
167 Rolle varchar(100) Not Null,
168 Preis float(10) Not Null,
169 [Produkt ID] INT Foreign KEY references [Produkt](ID),
170 )
171
172
173 --Verknüpfungstabelle FENutzer-FENutzer--------------------------
174 create table [FENutzer_befreundet_mit_FENutzer](
175 FENutzerID1 INT Foreign KEY references [FE-Nutzer] (ID),
176 FENutzerID2 INT Foreign KEY references [FE-Nutzer] (ID),
177 constraint benutzerrechte PRIMARY KEY (FENutzerID1,FENutzerID2))
178 -----------------------------------------------------------------
179
180 create table [Gast](
181 ID INT Primary Key Foreign Key references [FE-Nutzer] (ID),
182 Name varchar(100) Not Null ,
183 von Datetime Default GETDATE() Not Null,
184 bis Datetime Default GETDATE() Not Null,
185 )
186
187 create table [Mitarbeiter](
188 ID INT Primary Key Foreign Key references [FH-Ang] (ID),
189 [MA-Nummmer] int Not Null,
190 Büro varchar(100) Not Null
191 )
192
193 create table [Student](
194 ID INT Primary Key Foreign Key references [FE-Nutzer] (ID),
195 Matrikelnummer int Not Null Unique,
196 Studiengang varchar(100) Not Null,
197 CONSTRAINT chk_Matrikelnummer CHECK (Matrikelnummer>10000 AND Matrikelnummer>9999999)
198 )