-
Notifications
You must be signed in to change notification settings - Fork 0
/
farmington-db-creator.sql
156 lines (135 loc) · 3.65 KB
/
farmington-db-creator.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
154
155
156
--DROP DATABASE farmington;
--CREATE DATABASE farmington;
CREATE TABLE username_colours (
id VARCHAR(8) PRIMARY KEY,
name VARCHAR(30) NOT NULL,
hex VARCHAR(8) NOT NULL
);
CREATE TABLE flags (
id VARCHAR(100) PRIMARY KEY,
name VARCHAR(100) NOT NULL,
fullName VARCHAR(100) NOT NULL,
label VARCHAR(100) NOT NULL,
flagIcon VARCHAR(100) NOT NULL,
lbFlagIcon VARCHAR(100) NOT NULL,
lbName VARCHAR(100) NOT NULL
);
CREATE TABLE flag_discord_emojis (
id INT PRIMARY KEY,
flagId VARCHAR(100) REFERENCES flags(id),
guildId VARCHAR(30) NOT NULL,
emoji VARCHAR(100) NOT NULL
);
CREATE TABLE power_level (
id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE users (
id VARCHAR(8) PRIMARY KEY,
name VARCHAR(30) NOT NULL,
url VARCHAR(30) NOT NULL,
colour1Id VARCHAR(8) REFERENCES username_colours(id) NOT NULL,
colour2Id VARCHAR(8) REFERENCES username_colours(id),
hasSupporterAnimation BIT,
flagId VARCHAR(100) REFERENCES flags(id),
powerLevelId INT REFERENCES power_level(id) NOT NULL,
hasAvatarDecoration BOOL NOT NULL,
avatarDecorationSeparateColours BIT,
avatarDecorationColour1Id VARCHAR(8) REFERENCES username_colours(id),
avatarDecorationColour2Id VARCHAR(8) REFERENCES username_colours(id),
iconType INT,
supporterIconType INT,
supporterIconPosition INT
);
CREATE TABLE social_medias (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
icon VARCHAR(100)
);
CREATE TABLE user_social_medias (
userId VARCHAR(8) REFERENCES users(id),
socialMediaId INT REFERENCES social_medias(id),
url VARCHAR(100) NOT NULL,
isVerified BOOL
);
CREATE TABLE pronouns (
id SERIAL PRIMARY KEY,
pronoun VARCHAR(50)
);
CREATE TABLE user_pronouns (
userId VARCHAR(8) REFERENCES users(id),
pronounId INT REFERENCES pronouns(id)
);
CREATE TABLE unregistered_players (
id VARCHAR(38) PRIMARY KEY,
name VARCHAR(150) NOT NULL,
flagId VARCHAR(100) REFERENCES flags(id)
);
CREATE TABLE user_data (
userId VARCHAR(8) REFERENCES users(id),
fullGameRunCount INT,
levelRunCount INT,
pendingRunCount INT,
rejectedRunCount INT,
firstPlaceCount INT.
secondPlaceCount INT,
thirdPlaceCount INT,
gamesPlayed INT,
categoriesPlayed INT,
);
CREATE TABLE leaderboard_types (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
CREATE TABLE leaderboard (
id SERIAL PRIMARY KEY,
createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
finishTime TIMESTAMP,
leaderboardType INT REFERENCES leaderboard_types(id)
);
CREATE TABLE leaderboard_place (
id SERIAL PRIMARY KEY,
leaderboardId INT REFERENCES leaderboard(id),
amount INT
);
CREATE TAbLE games (
id VARCHAR(8) PRIMARY KEY,
name VARCHAR(100) NOT NULL,
url VARCHAR(100) NOT NULL
);
CREATE TABLE categories (
id VARCHAR(8) PRIMARY KEY,
gameId VARCHAR(8) REFERENCES games(id),
name VARCHAR(100) NOT NULL
);
CREATE TABLE variables (
id VARCHAR(8) PRIMARY KEY,
categoryId VARCHAR(8) REFERENCES categories(id),
name VARCHAR(100) NOT NULL,
isSubcategory BOOL
);
CREATE TABLE variable_values (
id VARCHAR(8) PRIMARY KEY,
variableId VARCHAR(8) REFERENCES variables(id),
name VARCHAR(100)
);
CREATE TABLE leaderboard_place_data (
id INT PRIMARY KEY,
leaderboardPlaceId INT REFERENCES leaderboard_place(id),
userId VARCHAR(8) REFERENCES users(id),
unregisteredPlayerId VARCHAR(38) REFERENCES unregistered_players(id),
gameId VARCHAR(8) REFERENCES games(id),
categoryId VARCHAR(8) REFERENCES categories(id),
variableId VARCHAR(8) REFERENCES variables(id)
);
CREATE TABLE leaderboard_place_data_values (
id INT PRIMARY KEY,
leaderboardPlaceDataId INT REFERENCES leaderboard_place_data(id),
valueId VARCHAR(8) REFERENCES variable_values(id)
);
CREATE TABLE database_users (
id SERIAL PRIMARY KEY,
name VARCHAR(30),
userId VARCHAR(8),
url VARCHAR(30)
);