11-- noinspection SqlNoDataSourceInspectionForFile
2-
3-
42CREATE EXTENSION postgis;
5- --
6- -- TABLES
7- --
3+
84CREATE TABLE IF NOT EXISTS projects (
95 archive boolean ,
106 created timestamp ,
117 created_by varchar ,
12- geom geometry(MULTIPOLYGON,4326 ),
8+ geom geometry(MULTIPOLYGON, 4326 ),
139 image varchar ,
1410 is_featured boolean ,
1511 look_for varchar ,
@@ -23,45 +19,53 @@ CREATE TABLE IF NOT EXISTS projects (
2319 status varchar ,
2420 verification_number int ,
2521 project_type_specifics json,
26- PRIMARY KEY (project_id)
27- );
22+ PRIMARY KEY (project_id)
23+ );
2824
29- CREATE TABLE IF NOT EXISTS groups (
25+ CREATE TABLE IF NOT EXISTS GROUPS (
3026 project_id varchar ,
3127 group_id varchar ,
3228 number_of_tasks int ,
3329 finished_count int ,
3430 required_count int ,
3531 progress int ,
3632 project_type_specifics json,
37- PRIMARY KEY (project_id, group_id),
33+ PRIMARY KEY (project_id, group_id),
3834 FOREIGN KEY (project_id) REFERENCES projects (project_id)
39- );
35+ );
4036
41- CREATE INDEX IF NOT EXISTS groups_projectid ON public .groups USING btree (group_id);
42- CREATE INDEX IF NOT EXISTS groups_goupid ON public .groups USING btree (project_id);
37+ CREATE INDEX IF NOT EXISTS groups_projectid ON public .groups
38+ USING btree (group_id);
39+
40+ CREATE INDEX IF NOT EXISTS groups_goupid ON public .groups
41+ USING btree (project_id);
4342
4443CREATE TABLE IF NOT EXISTS tasks (
4544 project_id varchar ,
4645 group_id varchar ,
4746 task_id varchar ,
48- geom geometry(MULTIPOLYGON,4326 ),
47+ geom geometry(MULTIPOLYGON, 4326 ),
4948 project_type_specifics json,
50- PRIMARY KEY (project_id, group_id, task_id),
49+ PRIMARY KEY (project_id, group_id, task_id),
5150 FOREIGN KEY (project_id) REFERENCES projects (project_id),
52- FOREIGN KEY (project_id, group_id) REFERENCES groups (project_id, group_id)
53- );
51+ FOREIGN KEY (project_id, group_id) REFERENCES GROUPS (project_id, group_id)
52+ );
53+
54+ CREATE INDEX IF NOT EXISTS tasks_task_id ON public .tasks
55+ USING btree (task_id);
5456
55- CREATE INDEX IF NOT EXISTS tasks_task_id ON public .tasks USING btree (task_id);
56- CREATE INDEX IF NOT EXISTS tasks_groupid ON public .tasks USING btree (group_id);
57- CREATE INDEX IF NOT EXISTS tasks_projectid ON public .tasks USING btree (project_id);
57+ CREATE INDEX IF NOT EXISTS tasks_groupid ON public .tasks
58+ USING btree (group_id);
59+
60+ CREATE INDEX IF NOT EXISTS tasks_projectid ON public .tasks
61+ USING btree (project_id);
5862
5963CREATE TABLE IF NOT EXISTS users (
6064 user_id varchar ,
6165 username varchar ,
6266 created timestamp ,
63- PRIMARY KEY (user_id)
64- );
67+ PRIMARY KEY (user_id)
68+ );
6569
6670CREATE TABLE IF NOT EXISTS results (
6771 project_id varchar ,
@@ -74,15 +78,22 @@ CREATE TABLE IF NOT EXISTS results (
7478 result int ,
7579 PRIMARY KEY (project_id, group_id, task_id, user_id),
7680 FOREIGN KEY (project_id) REFERENCES projects (project_id),
77- FOREIGN KEY (project_id, group_id) REFERENCES groups (project_id, group_id),
81+ FOREIGN KEY (project_id, group_id) REFERENCES GROUPS (project_id, group_id),
7882 FOREIGN KEY (project_id, group_id, task_id) REFERENCES tasks (project_id, group_id, task_id),
7983 FOREIGN KEY (user_id) REFERENCES users (user_id)
80- );
84+ );
85+
86+ CREATE INDEX IF NOT EXISTS results_projectid ON public .results
87+ USING btree (project_id);
88+
89+ CREATE INDEX IF NOT EXISTS results_groupid ON public .results
90+ USING btree (group_id);
91+
92+ CREATE INDEX IF NOT EXISTS results_taskid ON public .results
93+ USING btree (task_id);
8194
82- CREATE INDEX IF NOT EXISTS results_projectid ON public .results USING btree (project_id);
83- CREATE INDEX IF NOT EXISTS results_groupid ON public .results USING btree (group_id);
84- CREATE INDEX IF NOT EXISTS results_taskid ON public .results USING btree (task_id);
85- CREATE INDEX IF NOT EXISTS results_userid ON public .results USING btree (user_id);
95+ CREATE INDEX IF NOT EXISTS results_userid ON public .results
96+ USING btree (user_id);
8697
8798-- create table for results import through csv
8899CREATE TABLE IF NOT EXISTS results_temp (
@@ -96,13 +107,8 @@ CREATE TABLE IF NOT EXISTS results_temp (
96107 result int ,
97108 PRIMARY KEY (project_id, group_id, task_id, user_id),
98109 FOREIGN KEY (project_id) REFERENCES projects (project_id),
99- FOREIGN KEY (project_id, group_id) REFERENCES groups (project_id, group_id),
110+ FOREIGN KEY (project_id, group_id) REFERENCES GROUPS (project_id, group_id),
100111 FOREIGN KEY (project_id, group_id, task_id) REFERENCES tasks (project_id, group_id, task_id),
101112 FOREIGN KEY (user_id) REFERENCES users (user_id)
102- );
113+ );
103114
104- --
105- -- VIEWS
106- --
107- -- create views for statistics
108- \i / docker- entrypoint- initdb .d / stat_views .sql
0 commit comments