forked from Pls-Put-A-Name-Here/FullStack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEcommerceX-SQL_SCRIPTS.sql
More file actions
321 lines (292 loc) · 9.9 KB
/
EcommerceX-SQL_SCRIPTS.sql
File metadata and controls
321 lines (292 loc) · 9.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
--Bright Start
-- User Table
CREATE TABLE tblUsers (
usrIdpk INT PRIMARY KEY IDENTITY(1,1),
usrName NVARCHAR(50),
usrPassword NVARCHAR(50),
usrEmail NVARCHAR(50),
usrDoB Date,
usrPhoneNumber NVARCHAR(50)
);
-- Address Table
CREATE TABLE tblAddresses (
adrIdpk INT PRIMARY KEY IDENTITY(1,1),
adrLocation NVARCHAR(255),
adrDigitalAddress NVARCHAR(255),
adrHouseAddress NVARCHAR(255)
);
-- Customer Table
CREATE TABLE tblCustomers (
custIdpk INT PRIMARY KEY IDENTITY(1,1),
custUsrIdfk INT FOREIGN KEY REFERENCES tblUsers(usrIdpk),
custAdrIdfk INT FOREIGN KEY REFERENCES tblAddresses(adrIdpk)
);
-- Brand Table
CREATE TABLE tblBrands (
brdIdpk INT PRIMARY KEY IDENTITY(1,1),
brdName NVARCHAR(100) NOT NULL,
brdCountryOfOrigin NVARCHAR(100),
brdYearEstablished INT,
brdDescription TEXT,
brdCreatedDate DATETIME DEFAULT GETDATE(),
brdLastEditDate DATETIME DEFAULT GETDATE()
);
-- Product Category Table
CREATE TABLE tblProductCategories (
ctgIdpk INT PRIMARY KEY IDENTITY(1,1),
ctgName NVARCHAR(100) NOT NULL,
ctgCreatedDate DATETIME DEFAULT GETDATE(),
ctgLastEditDate DATETIME DEFAULT GETDATE(),
);
-- Bright Ends
-- Kirk Starts
-- ProductSubCategories Table
CREATE TABLE tblProductSubCategories(
sctgIdpk INT PRIMARY KEY IDENTITY(1,1),
sctgName NVARCHAR(100) NOT NULL,
sctgCreatedDate DATETIME DEFAULT GETDATE(),
sctgLastEditDate DATETIME DEFAULT GETDATE(),
);
-- Product Table
CREATE TABLE tblProducts (
prdIdpk INT PRIMARY KEY IDENTITY(1,1),
prdBrdIdfk INT FOREIGN KEY REFERENCES tblBrands(brdIdpk),
prdCtgIdfk INT FOREIGN KEY REFERENCES tblProductCategories(ctgIdpk),
prdSctgIdfk INT FOREIGN KEY REFERENCES tblProductSubCategories(sctgIdpk),
prdName NVARCHAR(255) NOT NULL,
prdDescription TEXT,
prdUnitPrice DECIMAL(10, 2),
prdStockQuantity INT,
prdCreatedDate DATETIME DEFAULT GETDATE(),
prdLastEditDate DATETIME DEFAULT GETDATE()
);
-- Product Images Table
CREATE TABLE tblProductImages (
imgIdpk INT PRIMARY KEY IDENTITY(1,1),
imgPrdIdfk INT FOREIGN KEY REFERENCES tblProducts(prdIdpk),
imgURL NVARCHAR(255),
imgDescription TEXT,
imgUploadDate DATETIME DEFAULT GETDATE(),
imgLastEditDate DATETIME DEFAULT GETDATE()
);
-- 9 Product Details Table
CREATE TABLE tblProductDetails (
prdDetailsIdpk INT PRIMARY KEY,
prdDetailsPrdIdfk INT FOREIGN KEY REFERENCES tblProducts(prdIdpk),
prdWeight NVARCHAR(100),
prdHeight NVARCHAR(255),
prdDimensions NVARCHAR(100),
prdTechnicalSpecification NVARCHAR(100),
prdDetailsCreatedDate DATETIME DEFAULT GETDATE(),
prdDetailsLastEditDate DATETIME DEFAULT GETDATE()
);
-- Product Variants Tablew
CREATE TABLE tblProductVariants (
prvIdpk INT PRIMARY KEY IDENTITY(1,1),
prvPrdIdfk INT FOREIGN KEY REFERENCES tblProducts(prdIdpk),
prvColor NVARCHAR(50),
prvSize NVARCHAR(50),
prvMaterial NVARCHAR(50),
prvPriceModifier DECIMAL(10, 2),
prvQuantityAvailable INT,
prvSKU NVARCHAR(100),
prvCreatedDate DATETIME DEFAULT GETDATE(),
prvLastEditDate DATETIME DEFAULT GETDATE()
);
-- Kirk Ends
--Joseph Starts
-- Order Status Table
CREATE TABLE tblOrderStatuses (
ordStatusIdpk INT PRIMARY KEY,
ordStatusName NVARCHAR(50),
ordStatusDescription TEXT,
ordStatusCreatedDate DATETIME DEFAULT GETDATE(),
ordStatusLastEditDate DATETIME DEFAULT GETDATE()
);
-- Payment Status Table
CREATE TABLE tblPaymentStatuses (
pstIdpk INT PRIMARY KEY,
pstStatusName NVARCHAR(50),
pstDescription TEXT,
pstCreatedDate DATETIME DEFAULT GETDATE(),
pstLastUpdateDate DATETIME DEFAULT GETDATE()
);
-- Order Table
CREATE TABLE tblOrders (
ordIdpk INT PRIMARY KEY IDENTITY(1,1),
ordCustIdpk INT FOREIGN KEY REFERENCES tblCustomers(custIdpk),
ordDate DATETIME,
ordDeliveryAddress NVARCHAR(255),
ordTotalCost DECIMAL(10, 2),
ordStatusIdfk INT FOREIGN KEY REFERENCES tblOrderStatuses(ordStatusIdpk),
ordStatusCreatedDate DATETIME DEFAULT GETDATE(),
LastUpdateDate DATETIME DEFAULT GETDATE()
);
-- Order Item Table
CREATE TABLE tblOrderItem (
ordtIdpk INT PRIMARY KEY IDENTITY(1,1),
ordtOrdIdfk INT FOREIGN KEY REFERENCES tblOrders(ordIdpk),
ordtPrdIdfk INT FOREIGN KEY REFERENCES tblProducts(prdIdpk),
ordtQuantity INT,
ordtUnitPrice DECIMAL(10, 2),
ordtSubtotal DECIMAL(10, 2),
ordtCreatedDate DATETIME DEFAULT GETDATE(),
ordtLastUpdateDate DATETIME DEFAULT GETDATE()
);
-- Supplier Table
CREATE TABLE tblSuppliers (
supIdpk INT PRIMARY KEY IDENTITY(1,1),
supName NVARCHAR(100) NOT NULL,
supContactInfo NVARCHAR(255),
supAddressLine1 NVARCHAR(255),
supAddressLine2 NVARCHAR(255),
supCity NVARCHAR(100),
supState NVARCHAR(100),
supPostalCode NVARCHAR(20),
supCountry NVARCHAR(100)
);
--Joseph Ends
-- Jonathan Starts
-- Inventory Table
CREATE TABLE tblInventory (
invIdpk INT PRIMARY KEY IDENTITY(1,1),
invPrdIdfk INT FOREIGN KEY REFERENCES tblProducts(prdIdpk),
invQuantityAvailable INT,
invUnitPrice DECIMAL(10, 2),
invUnitCost DECIMAL(10, 2),
invSupIdfk INT FOREIGN KEY REFERENCES tblSuppliers(supIdpk),
invDateAdded DATETIME,
invExpirationDate DATETIME,
invLastUpdateDate DATETIME DEFAULT GETDATE()
);
-- 17 Payment Methods Table
CREATE TABLE tblPaymentMethods(
pmtIdpk INT PRIMARY KEY IDENTITY(1,1),
pmtName NVARCHAR(100),
pmtDescription NVARCHAR(255),
pmtCreatedDate DATETIME DEFAULT GETDATE(),
pmtLastUpdateDate DATETIME DEFAULT GETDATE()
);
-- Purchase Table
CREATE TABLE tblPurchase (
pchIdpk INT PRIMARY KEY IDENTITY(1,1),
pchCustIdfk INT FOREIGN KEY REFERENCES tblCustomers(custIdpk),
pchPurchaseDate DATETIME,
pchTotalAmount DECIMAL(10, 2),
pchPmtIdfk INT FOREIGN KEY REFERENCES tblPaymentMethods(pmtIdpk),
pchPstIdfk INT FOREIGN KEY REFERENCES tblPaymentStatuses(pstIdpk),
pchCreatedDate DATETIME DEFAULT GETDATE(),
pchLastUpdateDate DATETIME DEFAULT GETDATE()
);
-- Cart Table
CREATE TABLE tblCarts (
crtIdpk INT PRIMARY KEY IDENTITY(1,1),
crtCustomerIdfk INT FOREIGN KEY REFERENCES tblCustomers(custIdpk),
crtCreatedAt DATETIME DEFAULT GETDATE(),
crtStatus NVARCHAR(50) DEFAULT 'Active'
);
-- Cart Items Table
CREATE TABLE tblCartItems (
crtItemIdpk INT PRIMARY KEY IDENTITY(1,1),
crtItemCrtIdfk INT FOREIGN KEY REFERENCES tblCarts(crtIdpk),
crtItemPrdIdfk INT FOREIGN KEY REFERENCES tblProducts(prdIdpk),
crtItemQuantity INT,
crtItemUnitPrice DECIMAL(10, 2)
);
-- Jonathan Ends
--Vine Starts
-- Reviews Table
CREATE TABLE tblReviews (
revIdpk INT PRIMARY KEY IDENTITY(1,1),
revPrdIdfk INT FOREIGN KEY REFERENCES tblProducts(prdIdpk),
revCustIdfk INT FOREIGN KEY REFERENCES tblCustomers(custIdpk),
revRating INT,
revComments TEXT
);
-- Ratings Table
CREATE TABLE tblRatings (
ratIdpk INT PRIMARY KEY IDENTITY(1,1),
ratPrdIdfk INT FOREIGN KEY REFERENCES tblProducts(prdIdpk),
ratCustIdfk INT FOREIGN KEY REFERENCES tblCustomers(custIdpk),
ratRating INT,
ratComments TEXT,
ratTimestamp DATETIME DEFAULT GETDATE()
);
-- Accounts Table
CREATE TABLE tblAccounts (
accIdpk INT PRIMARY KEY IDENTITY(1,1),
accUsrIdfk INT FOREIGN KEY REFERENCES tblUsers(usrIDpk),
accUsername VARCHAR(50) NOT NULL,
accPasswordHash VARCHAR(100) NOT NULL,
accEmail VARCHAR(100) NOT NULL,
accCreatedAt DATETIME DEFAULT GETDATE(),
accLastUpdateDate DATETIME DEFAULT GETDATE(),
accLastLogin DATETIME,
accIsActive BIT DEFAULT 1
);
-- Roles Table
CREATE TABLE tblRoles (
rolIdpk INT PRIMARY KEY IDENTITY(1,1),
rolName VARCHAR(50) NOT NULL,
rolDescription VARCHAR(255)
);
-- UserRoles Table
CREATE TABLE tblUserRoles (
urlIdpk INT PRIMARY KEY IDENTITY(1,1),
urlAccIdfk INT FOREIGN KEY REFERENCES tblAccounts(accIdpk),
urlRolIdfk INT FOREIGN KEY REFERENCES tblRoles(rolIdpk)
);
-- vine Ends
-- Pick one of the below tables in this order and write models on them.
-- Comment them afterwards
--Bright
--Kirk
--Joseph
-- Jonathan
--Vine
---- Payment Details Table
--CREATE TABLE tblPaymentDetails (
-- pydIdpk INT PRIMARY KEY IDENTITY(1,1),
-- ProductID INT FOREIGN KEY REFERENCES tblProducts(ProductID),
-- AddID INT FOREIGN KEY REFERENCES Address(AddID)
--);
---- Store Table
--CREATE TABLE tblStore (
-- StoreID INT PRIMARY KEY IDENTITY(1,1),
-- UserID INT FOREIGN KEY REFERENCES [User](UserID),
-- StoreName NVARCHAR(100) NOT NULL,
-- Description TEXT,
-- CreatedDate DATETIME DEFAULT GETDATE(),
-- LastEditDate DATETIME DEFAULT GETDATE()
--);
---- Store Product Table
--CREATE TABLE tblStoreProduct (
-- StoreProductID INT PRIMARY KEY IDENTITY(1,1),
-- StoreID INT FOREIGN KEY REFERENCES Store(StoreID),
-- ProductID INT FOREIGN KEY REFERENCES Product(ProductID),
-- Price DECIMAL(10, 2),
-- QuantityAvailable INT,
-- CreatedDate DATETIME DEFAULT GETDATE(),
-- LastEditDate DATETIME DEFAULT GETDATE()
--);
---- Store Review Table
--CREATE TABLE tblStoreReview (
-- ReviewID INT PRIMARY KEY,
-- StoreID INT FOREIGN KEY REFERENCES Store(StoreID),
-- CustomerID INT FOREIGN KEY REFERENCES Customer(CustID),
-- Rating INT,
-- ReviewText TEXT,
-- CreatedDate DATETIME DEFAULT GETDATE()
--);
---- Store Order Table
--CREATE TABLE tblStoreOrder (
-- StoreOrderID INT PRIMARY KEY IDENTITY(1,1),
-- StoreID INT FOREIGN KEY REFERENCES Store(StoreID),
-- CustomerID INT FOREIGN KEY REFERENCES Customer(CustID),
-- OrderDate DATETIME,
-- DeliveryAddress NVARCHAR(255),
-- TotalCost DECIMAL(10, 2),
-- OrderStatusID INT FOREIGN KEY REFERENCES OrderStatus(OrderStatusID),
-- CreatedDate DATETIME DEFAULT GETDATE(),
-- LastUpdateDate DATETIME DEFAULT GETDATE()
--);