diff options
Diffstat (limited to 'backend/database/init.sql')
| -rw-r--r-- | backend/database/init.sql | 98 |
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 @@ | |||
| 1 | DROP TABLE IF EXISTS showcases; | ||
| 2 | DROP TABLE IF EXISTS titles; | ||
| 3 | DROP TABLE IF EXISTS records_sp; | ||
| 4 | DROP TABLE IF EXISTS records_mp; | ||
| 5 | DROP TABLE IF EXISTS maps; | ||
| 6 | DROP TABLE IF EXISTS users; | ||
| 7 | DROP TABLE IF EXISTS countries; | ||
| 8 | |||
| 9 | DROP TABLE IF EXISTS demos; | ||
| 10 | |||
| 11 | CREATE TABLE users ( | 1 | CREATE 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 | ||
| 11 | CREATE TABLE games ( | ||
| 12 | id SMALLSERIAL, | ||
| 13 | name TEXT NOT NULL, | ||
| 14 | PRIMARY KEY (id) | ||
| 15 | ); | ||
| 16 | |||
| 17 | CREATE 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 | |||
| 25 | CREATE TABLE categories ( | ||
| 26 | id SMALLSERIAL, | ||
| 27 | name TEXT NOT NULL, | ||
| 28 | PRIMARY KEY (id) | ||
| 29 | ); | ||
| 30 | |||
| 21 | CREATE TABLE maps ( | 31 | CREATE 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 | |||
| 44 | CREATE 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 | |||
| 56 | CREATE 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 | ||
| 31 | CREATE TABLE demos ( | 66 | CREATE 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 | ||