aboutsummaryrefslogtreecommitdiff
path: root/backend/database/init.sql
diff options
context:
space:
mode:
authorNidboj132 <lol2s@vp.plm>2023-07-12 17:58:23 +0200
committerNidboj132 <lol2s@vp.plm>2023-07-12 17:58:23 +0200
commit781289455037431d8adbaa0b293b755c88169747 (patch)
tree773824f97c3b21d353b9066afdbde30bee2da4c5 /backend/database/init.sql
parentsummary (diff)
parentfix: 0 score count / showcase not required (#47) (diff)
downloadlphub-781289455037431d8adbaa0b293b755c88169747.tar.gz
lphub-781289455037431d8adbaa0b293b755c88169747.tar.bz2
lphub-781289455037431d8adbaa0b293b755c88169747.zip
Merge branch 'main' of https://github.com/pektezol/LeastPortals
Former-commit-id: af8d8680aafc3d662f8b53a4f50f0ea356b26c26
Diffstat (limited to 'backend/database/init.sql')
-rw-r--r--backend/database/init.sql44
1 files changed, 25 insertions, 19 deletions
diff --git a/backend/database/init.sql b/backend/database/init.sql
index 51a4881..50e7c15 100644
--- a/backend/database/init.sql
+++ b/backend/database/init.sql
@@ -9,13 +9,14 @@ CREATE TABLE users (
9); 9);
10 10
11CREATE TABLE games ( 11CREATE TABLE games (
12 id SMALLSERIAL, 12 id SERIAL,
13 name TEXT NOT NULL, 13 name TEXT NOT NULL,
14 is_coop BOOLEAN NOT NULL,
14 PRIMARY KEY (id) 15 PRIMARY KEY (id)
15); 16);
16 17
17CREATE TABLE chapters ( 18CREATE TABLE chapters (
18 id SMALLSERIAL, 19 id SERIAL,
19 game_id SMALLINT NOT NULL, 20 game_id SMALLINT NOT NULL,
20 name TEXT NOT NULL, 21 name TEXT NOT NULL,
21 PRIMARY KEY (id), 22 PRIMARY KEY (id),
@@ -23,52 +24,57 @@ CREATE TABLE chapters (
23); 24);
24 25
25CREATE TABLE categories ( 26CREATE TABLE categories (
26 id SMALLSERIAL, 27 id SERIAL,
27 name TEXT NOT NULL, 28 name TEXT NOT NULL,
28 PRIMARY KEY (id) 29 PRIMARY KEY (id)
29); 30);
30 31
31CREATE TABLE maps ( 32CREATE TABLE maps (
32 id SMALLSERIAL, 33 id SERIAL,
33 game_id SMALLINT NOT NULL, 34 game_id SMALLINT NOT NULL,
34 chapter_id SMALLINT NOT NULL, 35 chapter_id SMALLINT NOT NULL,
35 name TEXT NOT NULL, 36 name TEXT NOT NULL,
36 description TEXT NOT NULL,
37 showcase TEXT NOT NULL,
38 is_disabled BOOLEAN NOT NULL DEFAULT false, 37 is_disabled BOOLEAN NOT NULL DEFAULT false,
39 PRIMARY KEY (id), 38 PRIMARY KEY (id),
40 FOREIGN KEY (game_id) REFERENCES games(id), 39 FOREIGN KEY (game_id) REFERENCES games(id),
41 FOREIGN KEY (chapter_id) REFERENCES chapters(id) 40 FOREIGN KEY (chapter_id) REFERENCES chapters(id)
42); 41);
43 42
43CREATE TABLE map_routes (
44 id SERIAL,
45 map_id SMALLINT NOT NULL,
46 category_id SMALLINT NOT NULL,
47 score_count SMALLINT NOT NULL,
48 description TEXT NOT NULL,
49 showcase TEXT NOT NULL,
50 PRIMARY KEY (id),
51 FOREIGN KEY (map_id) REFERENCES maps(id),
52 FOREIGN KEY (category_id) REFERENCES categories(id),
53 UNIQUE (map_id, category_id, score_count)
54);
55
44CREATE TABLE map_history ( 56CREATE TABLE map_history (
45 id SMALLSERIAL, 57 id SERIAL,
46 map_id SMALLINT NOT NULL, 58 map_id SMALLINT NOT NULL,
59 category_id SMALLINT NOT NULL,
47 user_name TEXT NOT NULL, 60 user_name TEXT NOT NULL,
48 score_count SMALLINT NOT NULL, 61 score_count SMALLINT NOT NULL,
49 record_date TIMESTAMP NOT NULL, 62 record_date TIMESTAMP NOT NULL,
50 PRIMARY KEY (id), 63 PRIMARY KEY (id),
51 FOREIGN KEY (map_id) REFERENCES maps(id) 64 FOREIGN KEY (category_id) REFERENCES categories(id),
65 FOREIGN KEY (map_id) REFERENCES maps(id),
66 UNIQUE (map_id, category_id, score_count)
52); 67);
53 68
54CREATE TABLE map_ratings ( 69CREATE TABLE map_ratings (
55 id SERIAL, 70 id SERIAL,
56 map_id SMALLINT NOT NULL, 71 map_id SMALLINT NOT NULL,
72 category_id SMALLINT NOT NULL,
57 user_id TEXT NOT NULL, 73 user_id TEXT NOT NULL,
58 rating SMALLINT NOT NULL, 74 rating SMALLINT NOT NULL,
59 PRIMARY KEY (id), 75 PRIMARY KEY (id),
60 FOREIGN KEY (map_id) REFERENCES maps(id), 76 FOREIGN KEY (map_id) REFERENCES maps(id),
61 FOREIGN KEY (user_id) REFERENCES users(steam_id) 77 FOREIGN KEY (category_id) REFERENCES categories(id),
62);
63
64CREATE TABLE map_routers (
65 id SMALLSERIAL,
66 map_id SMALLINT NOT NULL,
67 user_id TEXT,
68 user_name TEXT NOT NULL,
69 score_count SMALLINT NOT NULL,
70 PRIMARY KEY (id),
71 FOREIGN KEY (map_id) REFERENCES maps(id),
72 FOREIGN KEY (user_id) REFERENCES users(steam_id) 78 FOREIGN KEY (user_id) REFERENCES users(steam_id)
73); 79);
74 80