@@ -18,9 +18,13 @@ CREATE TABLE applications (
1818 FOREIGN KEY (user_id)
1919 REFERENCES users(id)
2020 ON DELETE CASCADE
21- ON UPDATE CASCADE
21+ ON UPDATE CASCADE,
22+ UNIQUE(user_id, campaign_id)
2223);
2324
25+ CREATE INDEX IDX_applications_campaign on applications(campaign_id);
26+ CREATE INDEX IDX_applications_user on applications(user_id);
27+
2428CREATE TABLE application_roles (
2529 id BIGSERIAL PRIMARY KEY ,
2630 application_id BIGINT NOT NULL ,
@@ -38,8 +42,8 @@ CREATE TABLE application_roles (
3842 ON UPDATE CASCADE
3943);
4044
41- CREATE INDEX IDX_application_roles_applications on application_roles (application_id);
42- CREATE INDEX IDX_application_roles_campaign_roles on application_roles (campaign_role_id);
45+ CREATE INDEX IDX_application_roles_application on application_roles(application_id);
46+ CREATE INDEX IDX_application_roles_campaign_role on application_roles(campaign_role_id);
4347
4448CREATE TABLE answers (
4549 id BIGINT PRIMARY KEY ,
@@ -60,8 +64,8 @@ CREATE TABLE answers (
6064 DEFERRABLE INITIALLY DEFERRED
6165);
6266
63- CREATE INDEX IDX_answers_applications on answers (application_id);
64- CREATE INDEX IDX_answers_questions on answers (question_id);
67+ CREATE INDEX IDX_answers_application on answers(application_id);
68+ CREATE INDEX IDX_answers_question on answers(question_id);
6569
6670CREATE TABLE short_answer_answers (
6771 id BIGSERIAL PRIMARY KEY ,
@@ -74,7 +78,7 @@ CREATE TABLE short_answer_answers (
7478 ON UPDATE CASCADE
7579);
7680
77- CREATE INDEX IDX_short_answer_answers_answers on short_answer_answers (answer_id);
81+ CREATE INDEX IDX_short_answer_answers_answer on short_answer_answers(answer_id);
7882
7983CREATE TABLE multi_option_answer_options (
8084 id BIGSERIAL PRIMARY KEY ,
@@ -93,6 +97,9 @@ CREATE TABLE multi_option_answer_options (
9397 ON UPDATE CASCADE
9498);
9599
100+ CREATE INDEX IDX_multi_option_answer_options_question_option on multi_option_answer_options(option_id);
101+ CREATE INDEX IDX_multi_option_answer_options_answer on multi_option_answer_options(answer_id);
102+
96103CREATE TABLE ranking_answer_rankings (
97104 id BIGSERIAL PRIMARY KEY ,
98105 option_id BIGINT NOT NULL ,
@@ -111,8 +118,8 @@ CREATE TABLE ranking_answer_rankings (
111118 ON UPDATE CASCADE
112119);
113120
114- CREATE INDEX IDX_multi_option_answer_options_question_options on multi_option_answer_options(option_id);
115- CREATE INDEX IDX_multi_option_answer_options_answers on multi_option_answer_options(answer_id);
121+ CREATE INDEX IDX_ranking_answer_rankings_question_option on multi_option_answer_options(option_id);
122+ CREATE INDEX IDX_ranking_answer_rankings_answer on multi_option_answer_options(answer_id);
116123
117124CREATE TABLE application_ratings (
118125 id BIGINT PRIMARY KEY ,
@@ -134,5 +141,5 @@ CREATE TABLE application_ratings (
134141 ON UPDATE CASCADE
135142);
136143
137- CREATE INDEX IDX_application_ratings_applications on application_ratings(application_id);
138- CREATE INDEX IDX_application_ratings_users on application_ratings(rater_id);
144+ CREATE INDEX IDX_application_ratings_application on application_ratings(application_id);
145+ CREATE INDEX IDX_application_ratings_user on application_ratings(rater_id);
0 commit comments