-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild_db.sql
60 lines (53 loc) · 1.48 KB
/
build_db.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
drop database if exists dbfinal;
create database dbfinal;
use dbfinal;
CREATE TABLE orders (
orderID int PRIMARY KEY auto_increment,
userID int,
orderAddress varchar(255)
);
CREATE TABLE orderLineItems (
orderID int,
lineID int,
itemID int,
serviceID int,
quantity int,
primary key (orderID, lineID)
);
CREATE TABLE users (
userID int PRIMARY KEY,
username varchar(255),
passHash varchar(255),
accountBalance decimal(10,2),
currentOrderID int
);
CREATE TABLE services (
serviceID int PRIMARY KEY AUTO_INCREMENT,
serviceName varchar(255),
serviceAddress varchar(255),
imageURI varchar(500)
);
CREATE TABLE serviceItems (
itemID int AUTO_INCREMENT,
serviceID int,
itemName varchar(255),
itemDescription varchar(255),
itemPrice decimal(10, 2),
primary key(itemID, serviceID)
);
create table tags (
tagID int auto_increment,
tagName varchar(255) unique,
primary key (tagID)
);
create table serviceTags (
tagID int,
serviceID int,
primary key (tagID, serviceID)
);
ALTER TABLE orders ADD FOREIGN KEY (userID) REFERENCES users(userID);
ALTER TABLE serviceItems ADD FOREIGN KEY (serviceID) REFERENCES services(serviceID);
ALTER TABLE orderLineItems ADD FOREIGN KEY (orderID) REFERENCES orders(orderID);
ALTER TABLE orderLineItems ADD FOREIGN KEY (serviceID) REFERENCES services(serviceID);
ALTER TABLE orderLineItems ADD FOREIGN KEY (itemID) REFERENCES serviceItems(itemID);
ALTER TABLE users ADD FOREIGN KEY (currentOrderID) REFERENCES orders(orderID);