Skip to content

Commit 219218e

Browse files
committed
init of project folder
1 parent 495609e commit 219218e

File tree

2 files changed

+537
-0
lines changed

2 files changed

+537
-0
lines changed
Lines changed: 296 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,296 @@
1+
CREATE TABLE Category
2+
(
3+
CategoryID int NOT NULL,
4+
CategoryName varchar(255) NOT NULL,
5+
CONSTRAINT Category_pk PRIMARY KEY (CategoryID)
6+
)
7+
8+
CREATE TABLE Clients
9+
(
10+
ClientID int NOT NULL,
11+
City varchar(255) NOT NULL,
12+
Street varchar(255) NOT NULL,
13+
PostalCode varchar(255) NOT NULL,
14+
Phone varchar(32) NOT NULL,
15+
Email varchar(255) NOT NULL,
16+
CONSTRAINT ValidPostalCode CHECK (PostalCode LIKE '[0-9][0-9]-[0-9][0-9][0-9]'),
17+
CONSTRAINT ValidEmail CHECK (Email LIKE '%@%'),
18+
CONSTRAINT UniqueEmail UNIQUE (Email),
19+
CONSTRAINT ValidPhone CHECK (Phone LIKE '+[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
20+
CONSTRAINT UniquePhone UNIQUE (Phone),
21+
CONSTRAINT Clients_pk PRIMARY KEY (ClientID)
22+
)
23+
24+
CREATE TABLE Companies
25+
(
26+
ClientID int NOT NULL,
27+
CompanyName varchar(255) NOT NULL,
28+
NIP varchar(32) NOT NULL,
29+
CONSTRAINT ValidNIP CHECK (NIP LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
30+
CONSTRAINT UniqueNIP UNIQUE (NIP),
31+
CONSTRAINT Companies_pk PRIMARY KEY (ClientID)
32+
)
33+
34+
35+
CREATE TABLE DiscountDetails
36+
(
37+
VarID int NOT NULL,
38+
Value float(2) NOT NULL,
39+
StartDate int NOT NULL,
40+
EndDate int NOT NULL,
41+
CONSTRAINT ValidDate CHECK (EndDate > StartDate),
42+
CONSTRAINT ValidValue CHECK (Value > 0 AND Value < 1)
43+
)
44+
45+
46+
CREATE TABLE DiscountVars
47+
(
48+
VarID int NOT NULL,
49+
VarName varchar(2) NOT NULL,
50+
DiscountID int NOT NULL,
51+
CONSTRAINT DiscountVars_pk PRIMARY KEY (VarID)
52+
)
53+
54+
55+
CREATE TABLE Discounts
56+
(
57+
DiscountID int NOT NULL,
58+
AppliedDate datetime NOT NULL,
59+
ClientID int NOT NULL,
60+
CONSTRAINT Discounts_pk PRIMARY KEY (DiscountID)
61+
)
62+
63+
64+
CREATE TABLE Employees
65+
(
66+
PersonID int NOT NULL,
67+
CompanyID int NOT NULL,
68+
CONSTRAINT Employees_pk PRIMARY KEY (PersonID)
69+
)
70+
71+
72+
CREATE TABLE IndividualClient
73+
(
74+
PersonID int NOT NULL,
75+
ClientID int NOT NULL,
76+
CONSTRAINT IndividualClient_pk PRIMARY KEY (ClientID)
77+
)
78+
79+
80+
CREATE TABLE Menu
81+
(
82+
MenuID int NOT NULL,
83+
StartDate date NOT NULL,
84+
EndDate date NULL,
85+
Price money NOT NULL,
86+
ProductID int NOT NULL,
87+
CONSTRAINT ValidMenuDate CHECK (EndDate > StartDate),
88+
CONSTRAINT ValidPrice CHECK (Price > 0),
89+
CONSTRAINT Menu_pk PRIMARY KEY (MenuID)
90+
)
91+
92+
93+
CREATE TABLE OrderDetails
94+
(
95+
OrderID int NOT NULL,
96+
Quantity int NOT NULL,
97+
ProductID int NOT NULL,
98+
CONSTRAINT ValidQuantity CHECK (Quantity > 0),
99+
CONSTRAINT OrderDetails_pk PRIMARY KEY (OrderID)
100+
)
101+
102+
103+
CREATE TABLE Orders
104+
(
105+
OrderID int NOT NULL,
106+
ClientID int NOT NULL,
107+
OrderDate datetime NOT NULL,
108+
TakeawayID int NULL,
109+
ReservationID int NULL,
110+
Paid bit NOT NULL,
111+
CONSTRAINT Orders_pk PRIMARY KEY (OrderID)
112+
)
113+
114+
115+
CREATE TABLE OrdersTakeaways
116+
(
117+
TakeawayID int NOT NULL,
118+
PrefDate datetime NOT NULL,
119+
CONSTRAINT ValidPrefDate CHECK (PrefDate > GETDATE()),
120+
CONSTRAINT OrdersTakeaways_pk PRIMARY KEY (TakeawayID)
121+
)
122+
123+
124+
CREATE TABLE Person
125+
(
126+
FirstName varchar(255) NOT NULL,
127+
LastName varchar(255) NOT NULL,
128+
PersonID int NOT NULL,
129+
CONSTRAINT Person_pk PRIMARY KEY (PersonID)
130+
)
131+
132+
CREATE TABLE Products
133+
(
134+
CategoryID int NOT NULL,
135+
ProductID int NOT NULL,
136+
Name varchar(255) NOT NULL,
137+
Description varchar(255) NOT NULL DEFAULT 'brak opisu',
138+
CONSTRAINT MenuItems_pk PRIMARY KEY (ProductID)
139+
)
140+
141+
142+
CREATE TABLE Reservation
143+
(
144+
ReservationID int NOT NULL,
145+
StartDate datetime NOT NULL,
146+
EndDate datetime NOT NULL,
147+
Status varchar(16) NOT NULL,
148+
CONSTRAINT ValidReservationDate CHECK (EndDate > StartDate),
149+
CONSTRAINT Reservation_pk PRIMARY KEY (ReservationID)
150+
)
151+
152+
CREATE TABLE ReservationCompany
153+
(
154+
ReservationID int NOT NULL,
155+
ClientID int NOT NULL,
156+
PersonID int NULL,
157+
CONSTRAINT ReservationCompany_pk PRIMARY KEY (ReservationID)
158+
)
159+
160+
161+
CREATE TABLE ReservationDetails
162+
(
163+
ReservationID int NOT NULL,
164+
TableID int NOT NULL
165+
)
166+
167+
168+
CREATE TABLE ReservationIndividual
169+
(
170+
ReservationID int NOT NULL,
171+
ClientID int NOT NULL,
172+
PersonID int NOT NULL,
173+
CONSTRAINT Reservations_pk PRIMARY KEY (ReservationID)
174+
)
175+
176+
177+
CREATE TABLE ReservationVar
178+
(
179+
WZ int NOT NULL,
180+
WK int NOT NULL,
181+
ReservationVarID int NOT NULL,
182+
StartDate datetime NOT NULL,
183+
EndDate datetime NULL,
184+
CONSTRAINT ValidReservationVar CHECK (WZ > 0 AND WK > 0 AND ISNULL(EndDate, '9999-12-31 23:59:59') > StartDate ),
185+
CONSTRAINT ReservationVar_pk PRIMARY KEY (ReservationVarID)
186+
)
187+
188+
CREATE TABLE Tables
189+
(
190+
TableID int NOT NULL,
191+
Size int NOT NULL,
192+
CONSTRAINT ValidSize CHECK (Size > 0),
193+
CONSTRAINT Tables_pk PRIMARY KEY (TableID)
194+
)
195+
196+
ALTER TABLE ReservationDetails
197+
ADD CONSTRAINT Tables_ReservationDetails
198+
FOREIGN KEY (TableID)
199+
REFERENCES Tables (TableID)
200+
201+
ALTER TABLE ReservationDetails
202+
ADD CONSTRAINT ReservationDetails_ReservationIndividual
203+
FOREIGN KEY (ReservationID)
204+
REFERENCES ReservationIndividual (ReservationID)
205+
206+
ALTER TABLE ReservationDetails
207+
ADD CONSTRAINT ReservationDetails_ReservationCompany
208+
FOREIGN KEY (ReservationID)
209+
REFERENCES ReservationCompany (ReservationID)
210+
211+
ALTER TABLE ReservationIndividual
212+
ADD CONSTRAINT ReservationIndividual_Reservation
213+
FOREIGN KEY (ReservationID)
214+
REFERENCES Reservation (ReservationID)
215+
216+
ALTER TABLE Products
217+
ADD CONSTRAINT Category_MenuItems
218+
FOREIGN KEY (CategoryID)
219+
REFERENCES Category (CategoryID)
220+
221+
ALTER TABLE Orders
222+
ADD CONSTRAINT Reservation_Orders
223+
FOREIGN KEY (ReservationID)
224+
REFERENCES Reservation (ReservationID)
225+
226+
ALTER TABLE Orders
227+
ADD CONSTRAINT Orders_Clients
228+
FOREIGN KEY (ClientID)
229+
REFERENCES Clients (ClientID)
230+
231+
ALTER TABLE Orders
232+
ADD CONSTRAINT Orders_OrdersTakeaways
233+
FOREIGN KEY (TakeawayID)
234+
REFERENCES OrdersTakeaways (TakeawayID)
235+
236+
ALTER TABLE Companies
237+
ADD CONSTRAINT Companies_Clients
238+
FOREIGN KEY (ClientID)
239+
REFERENCES Clients (ClientID)
240+
241+
ALTER TABLE Menu
242+
ADD CONSTRAINT Menu_Products
243+
FOREIGN KEY (ProductID)
244+
REFERENCES Products (ProductID)
245+
ALTER TABLE IndividualClient
246+
ADD CONSTRAINT IndividualClient_Clients
247+
FOREIGN KEY (ClientID)
248+
REFERENCES Clients (ClientID)
249+
250+
ALTER TABLE IndividualClient
251+
ADD CONSTRAINT Person_IndividualClient
252+
FOREIGN KEY (PersonID)
253+
REFERENCES Person (PersonID)
254+
ALTER TABLE Employees
255+
ADD CONSTRAINT Employees_Companies
256+
FOREIGN KEY (CompanyID)
257+
REFERENCES Companies (ClientID)
258+
259+
ALTER TABLE Employees
260+
ADD CONSTRAINT Person_Employees
261+
FOREIGN KEY (PersonID)
262+
REFERENCES Person (PersonID)
263+
264+
ALTER TABLE Discounts
265+
ADD CONSTRAINT Discounts_IndividualClient
266+
FOREIGN KEY (ClientID)
267+
REFERENCES IndividualClient (ClientID)
268+
ALTER TABLE DiscountVars
269+
ADD CONSTRAINT DiscountVars_Discounts
270+
FOREIGN KEY (DiscountID)
271+
REFERENCES Discounts (DiscountID)
272+
273+
ALTER TABLE DiscountDetails
274+
ADD CONSTRAINT DiscountDetails_DiscountVars
275+
FOREIGN KEY (VarID)
276+
REFERENCES DiscountVars (VarID)
277+
278+
ALTER TABLE ReservationCompany
279+
ADD CONSTRAINT Companies_ReservationCompany
280+
FOREIGN KEY (ClientID)
281+
REFERENCES Companies (ClientID)
282+
283+
ALTER TABLE ReservationCompany
284+
ADD CONSTRAINT ReservationCompany_Reservation
285+
FOREIGN KEY (ReservationID)
286+
REFERENCES Reservation (ReservationID)
287+
288+
ALTER TABLE OrderDetails
289+
ADD CONSTRAINT OrderDetails_Orders
290+
FOREIGN KEY (OrderID)
291+
REFERENCES Orders (OrderID)
292+
293+
ALTER TABLE OrderDetails
294+
ADD CONSTRAINT OrderDetails_Products
295+
FOREIGN KEY (ProductID)
296+
REFERENCES Products (ProductID)

0 commit comments

Comments
 (0)