diff options
| author | Nidboj132 <lol2s@vp.plm> | 2023-07-12 17:58:23 +0200 |
|---|---|---|
| committer | Nidboj132 <lol2s@vp.plm> | 2023-07-12 17:58:23 +0200 |
| commit | 781289455037431d8adbaa0b293b755c88169747 (patch) | |
| tree | 773824f97c3b21d353b9066afdbde30bee2da4c5 /backend/database/init.sql | |
| parent | summary (diff) | |
| parent | fix: 0 score count / showcase not required (#47) (diff) | |
| download | lphub-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.sql | 44 |
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 | ||
| 11 | CREATE TABLE games ( | 11 | CREATE 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 | ||
| 17 | CREATE TABLE chapters ( | 18 | CREATE 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 | ||
| 25 | CREATE TABLE categories ( | 26 | CREATE 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 | ||
| 31 | CREATE TABLE maps ( | 32 | CREATE 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 | ||
| 43 | CREATE 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 | |||
| 44 | CREATE TABLE map_history ( | 56 | CREATE 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 | ||
| 54 | CREATE TABLE map_ratings ( | 69 | CREATE 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 | |||
| 64 | CREATE 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 | ||