forked from Funtastic4/OccaFit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
schema.sql
88 lines (68 loc) · 1.82 KB
/
schema.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
DROP DATABASE IF EXISTS fitbud;
CREATE DATABASE fitbud;
USE fitbud;
DROP TABLE IF EXISTS users;
DROP TABLE IF EXISTS postings;
DROP TABLE IF EXISTS profile;
DROP TABLE IF EXISTS requests;
CREATE TABLE users (
id int NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
email varchar(255) NOT NULL,
password varchar(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE postings (
id INT NOT NULL AUTO_INCREMENT,
title varchar(50),
location varchar(255) NOT NULL,
date DATETIME,
duration INT NOT NULL,
details varchar(255) NOT NULL,
meetup_spot varchar(255) NOT NULL,
buddies INT NOT NULL,
userId INT,
PRIMARY KEY (id),
FOREIGN KEY (userId) REFERENCES users(id)
);
CREATE TABLE profile (
id INT NOT NULL AUTO_INCREMENT,
email varchar(255),
city varchar(255),
state varchar(40),
activity varchar(400),
userId INT,
PRIMARY KEY (id),
FOREIGN KEY (userId) REFERENCES users(id)
);
CREATE TABLE requests (
id INT NOT NULL AUTO_INCREMENT,
postingId INT,
userId INT,
status ENUM('pending', 'accept', 'reject'),
PRIMARY KEY (id),
FOREIGN KEY (postingId) REFERENCES postings(id),
FOREIGN KEY (userId) REFERENCES users(id)
);
CREATE TABLE IF NOT EXISTS `StatusCode` (
id INT(1),
Meaning VARCHAR(500),
PRIMARY KEY (id)
);
INSERT INTO StatusCode (id, Meaning)
VALUES
(0, 'Pending'),
(1, 'Accepted'),
(2, 'Decline'),
(3, 'Blocked');
CREATE TABLE relationship (
userOneId INT NOT NULL,
userTwoId INT NOT NULL,
statusId INT NOT NULL,
actionId INT NOT NULL,
FOREIGN KEY (userOneId) REFERENCES users(id),
FOREIGN KEY (userTwoId) REFERENCES users(id),
FOREIGN KEY (actionId) REFERENCES users(id),
FOREIGN KEY (statusId) REFERENCES StatusCode(id)
);
select postings.*, users.name from postings inner join users on postings.userId=users.id where postings.id=3;