Skip to content

Commit 452c935

Browse files
authored
Merge pull request #5 from topcoder-platform/fix/add-more-indicies
Add more indicies for better performance
2 parents 71e9b17 + aa10bd8 commit 452c935

File tree

2 files changed

+132
-8
lines changed

2 files changed

+132
-8
lines changed
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
-- CreateIndex
2+
CREATE INDEX "appeal_id_idx" ON "appeal"("id");
3+
4+
-- CreateIndex
5+
CREATE INDEX "appeal_reviewItemCommentId_idx" ON "appeal"("reviewItemCommentId");
6+
7+
-- CreateIndex
8+
CREATE INDEX "appealResponse_id_idx" ON "appealResponse"("id");
9+
10+
-- CreateIndex
11+
CREATE INDEX "appealResponse_appealId_idx" ON "appealResponse"("appealId");
12+
13+
-- CreateIndex
14+
CREATE INDEX "appealResponse_resourceId_idx" ON "appealResponse"("resourceId");
15+
16+
-- CreateIndex
17+
CREATE INDEX "challengeResult_challengeId_idx" ON "challengeResult"("challengeId");
18+
19+
-- CreateIndex
20+
CREATE INDEX "challengeResult_userId_idx" ON "challengeResult"("userId");
21+
22+
-- CreateIndex
23+
CREATE INDEX "challengeResult_submissionId_idx" ON "challengeResult"("submissionId");
24+
25+
-- CreateIndex
26+
CREATE INDEX "contactRequest_id_idx" ON "contactRequest"("id");
27+
28+
-- CreateIndex
29+
CREATE INDEX "contactRequest_resourceId_idx" ON "contactRequest"("resourceId");
30+
31+
-- CreateIndex
32+
CREATE INDEX "contactRequest_challengeId_idx" ON "contactRequest"("challengeId");
33+
34+
-- CreateIndex
35+
CREATE INDEX "review_id_idx" ON "review"("id");
36+
37+
-- CreateIndex
38+
CREATE INDEX "review_phaseId_idx" ON "review"("phaseId");
39+
40+
-- CreateIndex
41+
CREATE INDEX "review_scorecardId_idx" ON "review"("scorecardId");
42+
43+
-- CreateIndex
44+
CREATE INDEX "reviewItem_scorecardQuestionId_idx" ON "reviewItem"("scorecardQuestionId");
45+
46+
-- CreateIndex
47+
CREATE INDEX "reviewItemComment_resourceId_idx" ON "reviewItemComment"("resourceId");
48+
49+
-- CreateIndex
50+
CREATE INDEX "reviewItemComment_type_idx" ON "reviewItemComment"("type");
51+
52+
-- CreateIndex
53+
CREATE INDEX "scorecard_id_idx" ON "scorecard"("id");
54+
55+
-- CreateIndex
56+
CREATE INDEX "scorecard_type_idx" ON "scorecard"("type");
57+
58+
-- CreateIndex
59+
CREATE INDEX "scorecard_status_idx" ON "scorecard"("status");
60+
61+
-- CreateIndex
62+
CREATE INDEX "scorecardGroup_id_idx" ON "scorecardGroup"("id");
63+
64+
-- CreateIndex
65+
CREATE INDEX "scorecardGroup_scorecardId_idx" ON "scorecardGroup"("scorecardId");
66+
67+
-- CreateIndex
68+
CREATE INDEX "scorecardGroup_sortOrder_idx" ON "scorecardGroup"("sortOrder");
69+
70+
-- CreateIndex
71+
CREATE INDEX "scorecardQuestion_id_idx" ON "scorecardQuestion"("id");
72+
73+
-- CreateIndex
74+
CREATE INDEX "scorecardQuestion_scorecardSectionId_idx" ON "scorecardQuestion"("scorecardSectionId");
75+
76+
-- CreateIndex
77+
CREATE INDEX "scorecardQuestion_type_idx" ON "scorecardQuestion"("type");
78+
79+
-- CreateIndex
80+
CREATE INDEX "scorecardQuestion_sortOrder_idx" ON "scorecardQuestion"("sortOrder");
81+
82+
-- CreateIndex
83+
CREATE INDEX "scorecardSection_id_idx" ON "scorecardSection"("id");
84+
85+
-- CreateIndex
86+
CREATE INDEX "scorecardSection_scorecardGroupId_idx" ON "scorecardSection"("scorecardGroupId");
87+
88+
-- CreateIndex
89+
CREATE INDEX "scorecardSection_sortOrder_idx" ON "scorecardSection"("sortOrder");

prisma/schema.prisma

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ model scorecard {
3737
@@index([challengeTrack])
3838
@@index([challengeType])
3939
@@index([name])
40+
@@index([id]) // Index for direct ID lookups
41+
@@index([type]) // Index for filtering by scorecard type
42+
@@index([status]) // Index for filtering by status (e.g. ACTIVE scorecards)
4043
}
4144

4245
enum ScorecardStatus {
@@ -77,6 +80,10 @@ model scorecardGroup {
7780
7881
scorecard scorecard @relation(fields: [scorecardId], references: [id], onDelete: Cascade)
7982
sections scorecardSection[]
83+
84+
@@index([id]) // Index for direct ID lookups
85+
@@index([scorecardId]) // Index for joining with scorecard table
86+
@@index([sortOrder]) // Index for ordering groups
8087
}
8188

8289
model scorecardSection {
@@ -93,6 +100,10 @@ model scorecardSection {
93100
94101
group scorecardGroup @relation(fields: [scorecardGroupId], references: [id], onDelete: Cascade)
95102
questions scorecardQuestion[]
103+
104+
@@index([id]) // Index for direct ID lookups
105+
@@index([scorecardGroupId]) // Index for joining with scorecardGroup table
106+
@@index([sortOrder]) // Index for ordering sections
96107
}
97108

98109
enum QuestionType {
@@ -121,6 +132,11 @@ model scorecardQuestion {
121132
scaleMax Int? // Maximum value for scale (used when type is SCALE)
122133
123134
section scorecardSection @relation(fields: [scorecardSectionId], references: [id], onDelete: Cascade)
135+
136+
@@index([id]) // Index for direct ID lookups
137+
@@index([scorecardSectionId]) // Index for joining with scorecardSection table
138+
@@index([type]) // Index for filtering questions by type
139+
@@index([sortOrder]) // Index for ordering questions
124140
}
125141

126142
model review {
@@ -141,9 +157,12 @@ model review {
141157
scorecard scorecard @relation(fields: [scorecardId], references: [id], onDelete: Cascade)
142158
reviewItems reviewItem[]
143159
144-
@@index([committed]) // Add index for the committed field
145-
@@index([submissionId]) // Index for submissionId field
146-
@@index([resourceId]) // Index for resourceId field
160+
@@index([committed]) // Index for filtering by committed status
161+
@@index([submissionId]) // Index for filtering by submission
162+
@@index([resourceId]) // Index for filtering by resource (reviewer)
163+
@@index([id]) // Index for direct ID lookups
164+
@@index([phaseId]) // Index for filtering by phase
165+
@@index([scorecardId]) // Index for joining with scorecard table
147166
}
148167

149168
model reviewItem {
@@ -162,8 +181,9 @@ model reviewItem {
162181
163182
review review @relation(fields: [reviewId], references: [id], onDelete: Cascade)
164183
reviewItemComments reviewItemComment[]
165-
@@index([reviewId]) // Index for reviewId field
166-
@@index([id]) // Index for id field
184+
@@index([reviewId]) // Index for joining with review table
185+
@@index([id]) // Index for direct ID lookups
186+
@@index([scorecardQuestionId]) // Index for joining with scorecardQuestion table
167187
}
168188

169189
model reviewItemComment {
@@ -181,8 +201,10 @@ model reviewItemComment {
181201
182202
reviewItem reviewItem @relation(fields: [reviewItemId], references: [id], onDelete: Cascade)
183203
appeal appeal?
184-
@@index([reviewItemId]) // Index for reviewItemId field
185-
@@index([id]) // Index for id field
204+
@@index([reviewItemId]) // Index for joining with reviewItem table
205+
@@index([id]) // Index for direct ID lookups
206+
@@index([resourceId]) // Index for filtering by resource (commenter)
207+
@@index([type]) // Index for filtering by comment type
186208
}
187209

188210
enum ReviewItemCommentType {
@@ -214,7 +236,9 @@ model appeal {
214236
reviewItemComment reviewItemComment @relation(fields: [reviewItemCommentId], references: [id], onDelete: Cascade) // Define fields and references here
215237
appealResponse appealResponse?
216238
217-
@@index([resourceId]) // Index for resourceId field
239+
@@index([resourceId]) // Index for resource ID
240+
@@index([id]) // Index for direct ID lookups
241+
@@index([reviewItemCommentId]) // Index for joining with reviewItemComment table
218242
}
219243

220244
model appealResponse {
@@ -230,6 +254,10 @@ model appealResponse {
230254
updatedBy String
231255
232256
appeal appeal @relation(fields: [appealId], references: [id], onDelete: Cascade)
257+
258+
@@index([id]) // Index for direct ID lookups
259+
@@index([appealId]) // Index for joining with appeal table
260+
@@index([resourceId]) // Index for filtering by resource (responder)
233261
}
234262

235263
model challengeResult {
@@ -254,6 +282,9 @@ model challengeResult {
254282
updatedBy String
255283
256284
@@id([challengeId, userId])
285+
@@index([challengeId]) // Index for filtering by challenge
286+
@@index([userId]) // Index for filtering by user
287+
@@index([submissionId]) // Index for filtering by submission
257288
}
258289

259290
model contactRequest {
@@ -265,4 +296,8 @@ model contactRequest {
265296
createdBy String
266297
updatedAt DateTime @updatedAt
267298
updatedBy String
299+
300+
@@index([id]) // Index for direct ID lookups
301+
@@index([resourceId]) // Index for filtering by resource (requester)
302+
@@index([challengeId]) // Index for filtering by challenge
268303
}

0 commit comments

Comments
 (0)