aboutsummaryrefslogtreecommitdiff
path: root/backend/database/init.sql
diff options
context:
space:
mode:
Diffstat (limited to 'backend/database/init.sql')
-rw-r--r--backend/database/init.sql98
1 files changed, 50 insertions, 48 deletions
diff --git a/backend/database/init.sql b/backend/database/init.sql
index 7e225f0..a82404a 100644
--- a/backend/database/init.sql
+++ b/backend/database/init.sql
@@ -1,13 +1,3 @@
1DROP TABLE IF EXISTS showcases;
2DROP TABLE IF EXISTS titles;
3DROP TABLE IF EXISTS records_sp;
4DROP TABLE IF EXISTS records_mp;
5DROP TABLE IF EXISTS maps;
6DROP TABLE IF EXISTS users;
7DROP TABLE IF EXISTS countries;
8
9DROP TABLE IF EXISTS demos;
10
11CREATE TABLE users ( 1CREATE TABLE users (
12 steam_id TEXT, 2 steam_id TEXT,
13 username TEXT NOT NULL, 3 username TEXT NOT NULL,
@@ -18,14 +8,59 @@ CREATE TABLE users (
18 PRIMARY KEY (steam_id) 8 PRIMARY KEY (steam_id)
19); 9);
20 10
11CREATE TABLE games (
12 id SMALLSERIAL,
13 name TEXT NOT NULL,
14 PRIMARY KEY (id)
15);
16
17CREATE TABLE chapters (
18 id SMALLSERIAL,
19 game_id SMALLINT NOT NULL,
20 name TEXT NOT NULL,
21 PRIMARY KEY (id),
22 FOREIGN KEY (game_id) REFERENCES games(id)
23);
24
25CREATE TABLE categories (
26 id SMALLSERIAL,
27 name TEXT NOT NULL,
28 PRIMARY KEY (id)
29);
30
21CREATE TABLE maps ( 31CREATE TABLE maps (
22 id SMALLSERIAL, 32 id SMALLSERIAL,
23 map_name TEXT NOT NULL, 33 game_id SMALLINT NOT NULL,
24 wr_score SMALLINT NOT NULL, 34 chapter_id SMALLINT NOT NULL,
25 wr_time INTEGER NOT NULL, 35 name TEXT NOT NULL,
26 is_coop BOOLEAN NOT NULL, 36 description TEXT NOT NULL,
37 showcase TEXT NOT NULL,
27 is_disabled BOOLEAN NOT NULL DEFAULT false, 38 is_disabled BOOLEAN NOT NULL DEFAULT false,
28 PRIMARY KEY (id) 39 PRIMARY KEY (id),
40 FOREIGN KEY (game_id) REFERENCES games(id),
41 FOREIGN KEY (chapter_id) REFERENCES chapters(id)
42);
43
44CREATE TABLE map_history (
45 id SMALLSERIAL,
46 map_id SMALLINT NOT NULL,
47 user_id TEXT,
48 user_name TEXT NOT NULL,
49 score_count SMALLINT NOT NULL,
50 record_date TIMESTAMP NOT NULL,
51 PRIMARY KEY (id),
52 FOREIGN KEY (map_id) REFERENCES maps(id),
53 FOREIGN KEY (user_id) REFERENCES users(steam_id)
54);
55
56CREATE TABLE map_rating (
57 id SERIAL,
58 map_id SMALLINT NOT NULL,
59 user_id TEXT NOT NULL,
60 rating SMALLINT NOT NULL,
61 PRIMARY KEY (id),
62 FOREIGN KEY (map_id) REFERENCES maps(id),
63 FOREIGN KEY (user_id) REFERENCES users(steam_id)
29); 64);
30 65
31CREATE TABLE demos ( 66CREATE TABLE demos (
@@ -78,36 +113,3 @@ CREATE TABLE countries (
78 country_name TEXT NOT NULL, 113 country_name TEXT NOT NULL,
79 PRIMARY KEY (country_code) 114 PRIMARY KEY (country_code)
80); 115);
81
82-- CREATE TABLE community_maps (
83-- id SMALLSERIAL,
84-- map_id SMALLINT NOT NULL,
85-- category TEXT NOT NULL,
86-- tutorial TEXT NOT NULL,
87-- video_link TEXT NOT NULL,
88-- PRIMARY KEY (id),
89-- FOREIGN KEY (map_id) REFERENCES maps(id)
90-- );
91
92-- TODO
93-- CREATE TABLE community_history (
94-- id SERIAL,
95-- map_id SMALLINT NOT NULL,
96-- user_id TEXT NOT NULL,
97-- score_count SMALLINT NOT NULL,
98-- created_at TIMESTAMP NOT NULL DEFAULT now(),
99-- PRIMARY KEY (id),
100-- FOREIGN KEY (user_id) REFERENCES users(steam_id),
101-- FOREIGN KEY (map_id) REFERENCES maps(id)
102-- );
103
104-- CREATE TABLE community_posts (
105-- id SERIAL,
106-- map_id SMALLINT NOT NULL,
107-- user_id TEXT NOT NULL,
108-- post TEXT NOT NULL,
109-- created_at TIMESTAMP NOT NULL DEFAULT now(),
110-- PRIMARY KEY (id),
111-- FOREIGN KEY (user_id) REFERENCES users(steam_id),
112-- FOREIGN KEY (map_id) REFERENCES maps(id)
113-- ); \ No newline at end of file