forked from RedArmadillo/ChatBackend
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSetupTables.sql
More file actions
executable file
·55 lines (49 loc) · 2.13 KB
/
Copy pathSetupTables.sql
File metadata and controls
executable file
·55 lines (49 loc) · 2.13 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
DROP TABLE IF EXISTS Members CASCADE;
CREATE TABLE Members (MemberID SERIAL PRIMARY KEY,
FirstName VARCHAR(255) NOT NULL,
LastName VARCHAR(255) NOT NULL,
Username VARCHAR(255) NOT NULL UNIQUE,
Email VARCHAR(255) NOT NULL UNIQUE,
Password VARCHAR(255) NOT NULL,
SALT VARCHAR(255),
Secret VARCHAR(32),
Verified BOOLEAN DEFAULT FALSE,
Created TIMESTAMPTZ NOT NULL DEFAULT Now()
);
DROP TABLE IF EXISTS Verification;
DROP TABLE IF EXISTS Contacts;
CREATE TABLE Contacts(PrimaryKey SERIAL PRIMARY KEY,
MemberID_A INT NOT NULL,
MemberID_B INT NOT NULL,
Verified INT DEFAULT 0,
FOREIGN KEY(MemberID_A) REFERENCES Members(MemberID),
FOREIGN KEY(MemberID_B) REFERENCES Members(MemberID)
);
DROP TABLE IF EXISTS Chats CASCADE;
CREATE TABLE Chats (ChatID SERIAL PRIMARY KEY,
Name VARCHAR(255)
);
DROP TABLE IF EXISTS ChatMembers;
CREATE TABLE ChatMembers (ChatID INT NOT NULL,
MemberID INT NOT NULL,
FOREIGN KEY(MemberID) REFERENCES Members(MemberID),
FOREIGN KEY(ChatID) REFERENCES Chats(ChatID)
);
DROP TABLE IF EXISTS Messages;
CREATE TABLE Messages (PrimaryKey SERIAL PRIMARY KEY,
ChatID INT,
Message VARCHAR(255),
MemberID INT,
FOREIGN KEY(MemberID) REFERENCES Members(MemberID),
FOREIGN KEY(ChatID) REFERENCES Chats(ChatID),
TimeStamp TIMESTAMP WITH TIME ZONE DEFAULT current_timestamp
);
DROP TABLE IF EXISTS Locations;
CREATE TABLE Locations (PrimaryKey SERIAL PRIMARY KEY,
MemberID INT,
Nickname VARCHAR(255),
Lat DECIMAL,
Long DECIMAL,
ZIP INT,
FOREIGN KEY(MemberID) REFERENCES Members(MemberID)
);