-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathECommerce.sql
134 lines (112 loc) · 3.74 KB
/
ECommerce.sql
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
-- myntra database design
CREATE TABLE ProductCategories (
ProductCategoryId INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
description TEXT NOT NULL
);
CREATE TABLE Products (
ProductId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
ProductName TEXT NOT NULL,
ProductDescription TEXT NOT NULL,
ProductPrice INTEGER NOT NULL,
ProductImage TEXT NOT NULL,
ProductCategoryId INTEGER NOT NULL,
FOREIGN KEY (ProductCategoryId) REFERENCES ProductCategories(ProductCategoryId)
);
CREATE TABLE Users (
UserId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
UserName TEXT NOT NULL,
UserPassword TEXT NOT NULL,
UserEmail TEXT NOT NULL,
UserPhone TEXT NOT NULL,
UserAddress TEXT NOT NULL,
UserCity TEXT NOT NULL,
UserState TEXT NOT NULL,
UserZip TEXT NOT NULL,
UserCountry TEXT NOT NULL,
UserRole TEXT NOT NULL
);
CREATE TABLE Orders (
OrderId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
OrderDate TEXT NOT NULL,
OrderStatus TEXT NOT NULL,
OrderTotal INTEGER NOT NULL,
UserId INTEGER NOT NULL,
FOREIGN KEY (UserId) REFERENCES Users(UserId),
);
CREATE TABLE Payment (
PaymentId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
PaymentType TEXT NOT NULL,
Status TEXT NOT NULL,
OrderId INTEGER NOT NULL,
FOREIGN KEY (OrderId) REFERENCES Orders(OrderId)
);
CREATE TABLE OrderItems (
OrderItemId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
OrderId INTEGER NOT NULL,
ProductId INTEGER NOT NULL,
Quantity INTEGER NOT NULL,
FOREIGN KEY (OrderId) REFERENCES Orders(OrderId),
FOREIGN KEY (ProductId) REFERENCES Products(ProductId)
);
CREATE TABLE Cart (
CartId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
UserId INTEGER NOT NULL,
ProductId INTEGER NOT NULL,
Quantity INTEGER NOT NULL,
FOREIGN KEY (UserId) REFERENCES Users(UserId),
FOREIGN KEY (ProductId) REFERENCES Products(ProductId)
);
CREATE TABLE Wishlist (
WishlistId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
UserId INTEGER NOT NULL,
ProductId INTEGER NOT NULL,
FOREIGN KEY (UserId) REFERENCES Users(UserId),
FOREIGN KEY (ProductId) REFERENCES Products(ProductId)
);
CREATE TABLE FeturedProducts (
FeaturedProductId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
ProductId INTEGER NOT NULL,
FOREIGN KEY (ProductId) REFERENCES Products(ProductId)
);
CREATE TABLE ProductReviews (
ProductReviewId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
ProductId INTEGER NOT NULL,
UserId INTEGER NOT NULL,
Review TEXT NOT NULL,
Rating INTEGER NOT NULL,
FOREIGN KEY (ProductId) REFERENCES Products(ProductId),
FOREIGN KEY (UserId) REFERENCES Users(UserId)
);
CREATE TABLE ProductRatings (
ProductRatingId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
ProductId INTEGER NOT NULL,
UserId INTEGER NOT NULL,
Rating INTEGER NOT NULL,
FOREIGN KEY (ProductId) REFERENCES Products(ProductId),
FOREIGN KEY (UserId) REFERENCES Users(UserId)
);
CREATE TABLE Address (
AddressId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
UserId INTEGER NOT NULL,
Address TEXT NOT NULL,
City TEXT NOT NULL,
State TEXT NOT NULL,
Zip TEXT NOT NULL,
Country TEXT NOT NULL,
FOREIGN KEY (UserId) REFERENCES Users(UserId)
);
CREATE TABLE SubCategory (
SubCategoryId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
SubCategoryName TEXT NOT NULL,
SubCategoryDescription TEXT NOT NULL,
ProductCategoryId INTEGER NOT NULL,
FOREIGN KEY (ProductCategoryId) REFERENCES ProductCategories(ProductCategoryId)
);
CREATE TABLE Varients (
VarientId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
Size TEXT NOT NULL,
Color TEXT,
ProductId INTEGER NOT NULL,
FOREIGN KEY (ProductId) REFERENCES Products(ProductId)
);