-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathe_commerce_script.sql
153 lines (134 loc) · 4.56 KB
/
e_commerce_script.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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS User;
DROP TABLE IF EXISTS Address;
DROP TABLE IF EXISTS Product;
DROP TABLE IF EXISTS Cart;
DROP TABLE IF EXISTS Cart_content;
DROP TABLE IF EXISTS Payment_method;
DROP TABLE IF EXISTS Card;
DROP TABLE IF EXISTS Command;
DROP TABLE IF EXISTS Invoices;
DROP TABLE IF EXISTS Photo;
DROP TABLE IF EXISTS Photo_type;
DROP TABLE IF EXISTS Rate;
SET FOREIGN_KEY_CHECKS=1;
CREATE TABLE User(
ID INTEGER NOT NULL AUTO_INCREMENT,
First_name TEXT NOT NULL,
Last_name TEXT NOT NULL,
Email TEXT NOT NULL,
Password TEXT NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE Address(
ID INTEGER NOT NULL AUTO_INCREMENT,
FK_User_ID INTEGER NOT NULL,
Address TEXT NOT NULL,
Extra_info TEXT,
Postal_code INT NOT NULL,
City TEXT NOT NULL,
Country TEXT NOT NULL,
PRIMARY KEY (ID)
);
CREATE TABLE Product(
ID INTEGER NOT NULL AUTO_INCREMENT,
Name TEXT NOT NULL,
Description TEXT NOT NULL,
Category TEXT NOT NULL,
Price FLOAT NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE Cart(
ID INTEGER NOT NULL AUTO_INCREMENT,
FK_user_id INTEGER NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE Cart_content(
ID INTEGER NOT NULL AUTO_INCREMENT,
FK_cart_ID INTEGER NOT NULL,
FK_product_ID INTEGER NOT NULL,
Quantity INTEGER NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE Payment_method(
ID INTEGER NOT NULL AUTO_INCREMENT,
Type TEXT NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE Card(
ID Integer NOT NULL AUTO_INCREMENT,
FK_user_ID INTEGER NOT NULL,
Card_owner TEXT NOT NULL,
Card_number Varchar(16) NOT NULL,
Expiration_date TEXT NOT NULL,
Cvc Varchar(3) NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE Command(
ID INTEGER NOT NULL AUTO_INCREMENT,
FK_cart_ID INTEGER NOT NULL,
FK_user_ID INTEGER NOT NULL,
FK_address_ID INTEGER NOT NULL,
FK_method_ID INTEGER NOT NULL,
FK_card_ID INTEGER NOT NULL,
Order_date DATE NOT NULL,
Total_price float NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE Invoices(
ID INTEGER NOT NULL AUTO_INCREMENT,
FK_user_ID INTEGER NOT NULL,
FK_command_ID INTEGER NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE Photo(
ID INTEGER NOT NULL AUTO_INCREMENT,
FK_id_type INTEGER NOT NULL,
Entity_ID INTEGER NOT NULL,
url TEXT NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE Photo_type(
ID INTEGER NOT NULL AUTO_INCREMENT,
Type TEXT NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE Rate(
ID INTEGER NOT NULL AUTO_INCREMENT,
FK_product_ID INTEGER NOT NULL,
FK_user_ID INTEGER NOT NULL,
Rating FLOAT,
Review TEXT,
PRIMARY KEY(ID)
);
INSERT INTO Payment_method (Type) VALUES ("product");
INSERT INTO Payment_method (Type) VALUES ("user");
INSERT INTO Photo_type (Type) VALUES ("product");
INSERT INTO Photo_type (Type) VALUES ("user");
ALTER TABLE User ENGINE=InnoDB;
ALTER TABLE Address ENGINE=InnoDB;
ALTER TABLE Product ENGINE=InnoDB;
ALTER TABLE Cart ENGINE=InnoDB;
ALTER TABLE Cart_content ENGINE=InnoDB;
ALTER TABLE Payment_method ENGINE=InnoDB;
ALTER TABLE Card ENGINE=InnoDB;
ALTER TABLE Command ENGINE=InnoDB;
ALTER TABLE Invoices ENGINE=InnoDB;
ALTER TABLE Photo ENGINE=InnoDB;
ALTER TABLE Photo_type ENGINE=InnoDB;
ALTER TABLE Rate ENGINE=InnoDB;
ALTER TABLE Address ADD FOREIGN KEY (FK_User_ID) REFERENCES User(ID) ON DELETE CASCADE;
ALTER TABLE Cart ADD FOREIGN KEY(FK_user_ID) REFERENCES User(ID) ON DELETE CASCADE;
ALTER TABLE Cart_content ADD FOREIGN KEY(FK_cart_ID) REFERENCES Cart(ID) ON DELETE CASCADE;
ALTER TABLE Cart_content ADD FOREIGN KEY(FK_product_ID) REFERENCES Product(ID) ON DELETE CASCADE;
ALTER TABLE Card ADD FOREIGN KEY(FK_user_ID) REFERENCES User(ID) ON DELETE CASCADE;
ALTER TABLE Command ADD FOREIGN KEY(FK_user_ID) REFERENCES User(ID) ON DELETE CASCADE;
ALTER TABLE Command ADD FOREIGN KEY(FK_address_ID) REFERENCES Address(ID) ON DELETE CASCADE;
ALTER TABLE Command ADD FOREIGN KEY(FK_cart_ID) REFERENCES Cart(ID) ON DELETE CASCADE;
ALTER TABLE Command ADD FOREIGN KEY(FK_method_ID) REFERENCES Payment_method(ID) ON DELETE CASCADE;
ALTER TABLE Command ADD FOREIGN KEY(FK_card_ID) REFERENCES Card(ID) ON DELETE CASCADE;
ALTER TABLE Invoices ADD FOREIGN KEY(FK_user_ID) REFERENCES User(ID) ON DELETE CASCADE;
ALTER TABLE Invoices ADD FOREIGN KEY(FK_command_ID) REFERENCES Command(ID) ON DELETE CASCADE;
ALTER TABLE Photo ADD FOREIGN KEY(FK_id_type) REFERENCES Photo_type(ID) ON DELETE CASCADE;
ALTER TABLE Rate ADD FOREIGN KEY(FK_product_id) REFERENCES Product(ID) ON DELETE CASCADE;
ALTER TABLE Rate ADD FOREIGN KEY(FK_user_ID) REFERENCES User(ID) ON DELETE CASCADE;