Skip to content

Commit d213c14

Browse files
add indexes to join columns
1 parent a61a84d commit d213c14

6 files changed

Lines changed: 34 additions & 15 deletions

backend/migrations/20240406024211_create_organisations.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ CREATE TABLE organisations (
88
);
99

1010
CREATE TYPE organisation_role AS ENUM ('User', 'Admin');
11+
CREATE UNIQUE INDEX IDX_organisations_slug on organisations(slug);
1112

1213
CREATE TABLE organisation_members (
1314
id BIGSERIAL PRIMARY KEY,
@@ -22,4 +23,4 @@ CREATE TABLE organisation_members (
2223
);
2324

2425

25-
CREATE INDEX IDX_organisation_admins_organisation on organisation_members(organisation_id);
26+
CREATE INDEX IDX_organisation_members_organisation on organisation_members(organisation_id);

backend/migrations/20240406025537_create_campaigns.sql

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ CREATE TABLE campaigns (
1717
UNIQUE (organisation_id, slug)
1818
);
1919

20+
CREATE UNIQUE INDEX IDX_campaigns_organisation on campaigns(organisation_id);
21+
CREATE UNIQUE INDEX IDX_campaigns_slug on campaigns(slug);
22+
2023
CREATE TABLE campaign_roles (
2124
id BIGINT PRIMARY KEY,
2225
campaign_id BIGINT NOT NULL,

backend/migrations/20240406031400_create_questions.sql

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ CREATE TABLE questions (
1717
ON UPDATE CASCADE
1818
);
1919

20+
CREATE UNIQUE INDEX IDX_questions_campaign on questions(campaign_id);
21+
2022
CREATE TABLE multi_option_question_options (
2123
id BIGINT PRIMARY KEY,
2224
text TEXT NOT NULL,
@@ -31,7 +33,7 @@ CREATE TABLE multi_option_question_options (
3133
UNIQUE (question_id, display_order)
3234
);
3335

34-
CREATE INDEX IDX_multi_option_question_options_questions on multi_option_question_options(question_id);
36+
CREATE INDEX IDX_multi_option_question_options_question on multi_option_question_options(question_id);
3537

3638
CREATE TABLE question_roles (
3739
id BIGSERIAL PRIMARY KEY,
@@ -52,5 +54,5 @@ CREATE TABLE question_roles (
5254
UNIQUE (question_id, role_id)
5355
);
5456

55-
CREATE INDEX IDX_question_roles_questions on question_roles(question_id);
56-
CREATE INDEX IDX_question_roles_roles on question_roles(role_id);
57+
CREATE INDEX IDX_question_roles_question on question_roles(question_id);
58+
CREATE INDEX IDX_question_roles_role on question_roles(role_id);

backend/migrations/20240406031915_create_applications.sql

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ CREATE TABLE applications (
2121
ON UPDATE CASCADE
2222
);
2323

24+
CREATE UNIQUE INDEX IDX_applications_campaign on applications(campaign_id);
25+
CREATE UNIQUE INDEX IDX_applications_user on applications(user_id);
26+
2427
CREATE TABLE application_roles (
2528
id BIGSERIAL PRIMARY KEY,
2629
application_id BIGINT NOT NULL,
@@ -38,8 +41,8 @@ CREATE TABLE application_roles (
3841
ON UPDATE CASCADE
3942
);
4043

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);
44+
CREATE INDEX IDX_application_roles_application on application_roles(application_id);
45+
CREATE INDEX IDX_application_roles_campaign_role on application_roles(campaign_role_id);
4346

4447
CREATE TABLE answers (
4548
id BIGINT PRIMARY KEY,
@@ -60,8 +63,8 @@ CREATE TABLE answers (
6063
DEFERRABLE INITIALLY DEFERRED
6164
);
6265

63-
CREATE INDEX IDX_answers_applications on answers (application_id);
64-
CREATE INDEX IDX_answers_questions on answers (question_id);
66+
CREATE INDEX IDX_answers_application on answers(application_id);
67+
CREATE INDEX IDX_answers_question on answers(question_id);
6568

6669
CREATE TABLE short_answer_answers (
6770
id BIGSERIAL PRIMARY KEY,
@@ -74,7 +77,7 @@ CREATE TABLE short_answer_answers (
7477
ON UPDATE CASCADE
7578
);
7679

77-
CREATE INDEX IDX_short_answer_answers_answers on short_answer_answers (answer_id);
80+
CREATE INDEX IDX_short_answer_answers_answer on short_answer_answers(answer_id);
7881

7982
CREATE TABLE multi_option_answer_options (
8083
id BIGSERIAL PRIMARY KEY,
@@ -93,6 +96,9 @@ CREATE TABLE multi_option_answer_options (
9396
ON UPDATE CASCADE
9497
);
9598

99+
CREATE UNIQUE INDEX IDX_multi_option_answer_options_question_option on multi_option_answer_options(option_id);
100+
CREATE UNIQUE INDEX IDX_multi_option_answer_options_answer on multi_option_answer_options(answer_id);
101+
96102
CREATE TABLE ranking_answer_rankings (
97103
id BIGSERIAL PRIMARY KEY,
98104
option_id BIGINT NOT NULL,
@@ -111,8 +117,8 @@ CREATE TABLE ranking_answer_rankings (
111117
ON UPDATE CASCADE
112118
);
113119

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);
120+
CREATE INDEX IDX_multi_option_answer_options_question_option on multi_option_answer_options(option_id);
121+
CREATE INDEX IDX_multi_option_answer_options_answer on multi_option_answer_options(answer_id);
116122

117123
CREATE TABLE application_ratings (
118124
id BIGINT PRIMARY KEY,
@@ -134,5 +140,5 @@ CREATE TABLE application_ratings (
134140
ON UPDATE CASCADE
135141
);
136142

137-
CREATE INDEX IDX_application_ratings_applications on application_ratings(application_id);
138-
CREATE INDEX IDX_application_ratings_users on application_ratings(rater_id);
143+
CREATE INDEX IDX_application_ratings_application on application_ratings(application_id);
144+
CREATE INDEX IDX_application_ratings_user on application_ratings(rater_id);

backend/migrations/20241124054711_email_templates.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,6 @@ CREATE TABLE email_templates (
1010
ON DELETE CASCADE
1111
ON UPDATE CASCADE,
1212
UNIQUE (organisation_id, name)
13-
);
13+
);
14+
15+
CREATE UNIQUE INDEX IDX_email_templates_organisation on email_templates(organisation_id);

backend/migrations/20241126113027_offers.sql

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,9 @@ CREATE TABLE offers (
2929
REFERENCES campaign_roles(id)
3030
ON DELETE CASCADE
3131
ON UPDATE CASCADE
32-
);
32+
);
33+
34+
CREATE UNIQUE INDEX IDX_offers_campaign on offers(campaign_id);
35+
CREATE UNIQUE INDEX IDX_offers_application on offers(application_id);
36+
CREATE UNIQUE INDEX IDX_offers_email_template on offers(email_template_id);
37+
CREATE UNIQUE INDEX IDX_offers_role on offers(role_id);

0 commit comments

Comments
 (0)