Skip to content

Commit d1f0ded

Browse files
shl0501yu-yj215
andauthored
feat(be): add database index (#244)
feat: add database index Co-authored-by: yu-yj215 <[email protected]>
1 parent 26a5dc9 commit d1f0ded

File tree

6 files changed

+74
-59
lines changed

6 files changed

+74
-59
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- CreateIndex
2+
CREATE INDEX "Chatting_session_id_idx" ON "Chatting"("session_id");
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- CreateIndex
2+
CREATE INDEX "Chatting_session_id_chatting_id_idx" ON "Chatting"("session_id", "chatting_id");
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- DropIndex
2+
DROP INDEX "Chatting_session_id_chatting_id_idx";
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- CreateIndex
2+
CREATE INDEX "Chatting_session_id_chatting_id_idx" ON "Chatting"("session_id", "chatting_id");
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- CreateIndex
2+
CREATE INDEX "Question_session_id_idx" ON "Question"("session_id");

apps/server/prisma/schema.prisma

Lines changed: 64 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,22 @@ datasource db {
88
}
99

1010
model User {
11-
userId Int @id @default(autoincrement()) @map("user_id")
12-
email String @unique
13-
password String
14-
nickname String @unique
15-
createdAt DateTime @default(now()) @map("created_at")
11+
userId Int @id @default(autoincrement()) @map("user_id")
12+
email String @unique
13+
password String
14+
nickname String @unique
15+
createdAt DateTime @default(now()) @map("created_at")
1616
1717
sessions Session[] @relation("UserSessions")
1818
userSessionTokens UserSessionToken[] @relation("UserTokens")
1919
}
2020

2121
model Session {
22-
sessionId String @id @default(uuid()) @map("session_id")
23-
title String
24-
expiredAt DateTime @map("expired_at")
25-
createdAt DateTime @default(now()) @map("created_at")
26-
createUserId Int @map("create_user_id")
22+
sessionId String @id @default(uuid()) @map("session_id")
23+
title String
24+
expiredAt DateTime @map("expired_at")
25+
createdAt DateTime @default(now()) @map("created_at")
26+
createUserId Int @map("create_user_id")
2727
2828
user User @relation("UserSessions", fields: [createUserId], references: [userId])
2929
userSessionTokens UserSessionToken[] @relation("SessionTokens")
@@ -33,75 +33,80 @@ model Session {
3333
}
3434

3535
model UserSessionToken {
36-
token String @id @default(uuid())
37-
userId Int? @map("user_id")
38-
sessionId String @map("session_id")
39-
isHost Boolean @default(false) @map("is_host")
40-
41-
user User? @relation("UserTokens", fields: [userId], references: [userId])
42-
session Session @relation("SessionTokens", fields: [sessionId], references: [sessionId])
43-
questions Question[] @relation("TokenQuestions")
44-
questionLikes QuestionLike[] @relation("TokenQuestionLikes")
45-
replies Reply[] @relation("TokenReplies")
46-
replyLikes ReplyLike[] @relation("TokenReplyLikes")
47-
chattings Chatting[] @relation("TokenChattings")
36+
token String @id @default(uuid())
37+
userId Int? @map("user_id")
38+
sessionId String @map("session_id")
39+
isHost Boolean @default(false) @map("is_host")
40+
41+
user User? @relation("UserTokens", fields: [userId], references: [userId])
42+
session Session @relation("SessionTokens", fields: [sessionId], references: [sessionId])
43+
questions Question[] @relation("TokenQuestions")
44+
questionLikes QuestionLike[] @relation("TokenQuestionLikes")
45+
replies Reply[] @relation("TokenReplies")
46+
replyLikes ReplyLike[] @relation("TokenReplyLikes")
47+
chattings Chatting[] @relation("TokenChattings")
4848
}
4949

5050
model Question {
51-
questionId Int @id @default(autoincrement()) @map("question_id")
52-
createUserToken String @map("create_user_token")
53-
sessionId String @map("session_id")
54-
body String
55-
closed Boolean
56-
pinned Boolean
57-
createdAt DateTime @default(now()) @map("created_at")
58-
59-
session Session @relation("SessionQuestions", fields: [sessionId], references: [sessionId])
60-
createUserTokenEntity UserSessionToken @relation("TokenQuestions", fields: [createUserToken], references: [token])
61-
questionLikes QuestionLike[] @relation("QuestionLikes")
62-
replies Reply[] @relation("QuestionReplies")
51+
questionId Int @id @default(autoincrement()) @map("question_id")
52+
createUserToken String @map("create_user_token")
53+
sessionId String @map("session_id")
54+
body String
55+
closed Boolean
56+
pinned Boolean
57+
createdAt DateTime @default(now()) @map("created_at")
58+
59+
session Session @relation("SessionQuestions", fields: [sessionId], references: [sessionId])
60+
createUserTokenEntity UserSessionToken @relation("TokenQuestions", fields: [createUserToken], references: [token])
61+
questionLikes QuestionLike[] @relation("QuestionLikes")
62+
replies Reply[] @relation("QuestionReplies")
63+
64+
@@index([sessionId])
6365
}
6466

6567
model QuestionLike {
66-
questionLikeId Int @id @default(autoincrement()) @map("question_like_id")
67-
createUserToken String @map("create_user_token")
68-
questionId Int @map("question_id")
68+
questionLikeId Int @id @default(autoincrement()) @map("question_like_id")
69+
createUserToken String @map("create_user_token")
70+
questionId Int @map("question_id")
6971
7072
question Question @relation("QuestionLikes", fields: [questionId], references: [questionId], onDelete: Cascade)
7173
createUserTokenEntity UserSessionToken @relation("TokenQuestionLikes", fields: [createUserToken], references: [token])
7274
}
7375

7476
model Reply {
75-
replyId Int @id @default(autoincrement()) @map("reply_id")
76-
createUserToken String @map("create_user_token")
77-
sessionId String @map("session_id")
78-
questionId Int @map("question_id")
79-
body String
80-
createdAt DateTime @default(now()) @map("created_at")
81-
deleted Boolean @default(false)
82-
83-
session Session @relation("SessionReplies", fields: [sessionId], references: [sessionId])
84-
question Question @relation("QuestionReplies", fields: [questionId], references: [questionId], onDelete: Cascade)
77+
replyId Int @id @default(autoincrement()) @map("reply_id")
78+
createUserToken String @map("create_user_token")
79+
sessionId String @map("session_id")
80+
questionId Int @map("question_id")
81+
body String
82+
createdAt DateTime @default(now()) @map("created_at")
83+
deleted Boolean @default(false)
84+
85+
session Session @relation("SessionReplies", fields: [sessionId], references: [sessionId])
86+
question Question @relation("QuestionReplies", fields: [questionId], references: [questionId], onDelete: Cascade)
8587
createUserTokenEntity UserSessionToken @relation("TokenReplies", fields: [createUserToken], references: [token])
86-
replyLikes ReplyLike[] @relation("ReplyLikes")
88+
replyLikes ReplyLike[] @relation("ReplyLikes")
8789
}
8890

8991
model ReplyLike {
90-
replyLikeId Int @id @default(autoincrement()) @map("reply_like_id")
91-
createUserToken String @map("create_user_token")
92-
replyId Int @map("reply_id")
92+
replyLikeId Int @id @default(autoincrement()) @map("reply_like_id")
93+
createUserToken String @map("create_user_token")
94+
replyId Int @map("reply_id")
9395
94-
reply Reply @relation("ReplyLikes", fields: [replyId], references: [replyId], onDelete: Cascade)
96+
reply Reply @relation("ReplyLikes", fields: [replyId], references: [replyId], onDelete: Cascade)
9597
createUserTokenEntity UserSessionToken @relation("TokenReplyLikes", fields: [createUserToken], references: [token])
9698
}
9799

98100
model Chatting {
99-
chattingId Int @id @default(autoincrement()) @map("chatting_id")
100-
createUserToken String @map("create_user_token")
101-
body String
102-
createdAt DateTime @default(now()) @map("created_at")
103-
sessionId String @map("session_id")
101+
chattingId Int @id @default(autoincrement()) @map("chatting_id")
102+
createUserToken String @map("create_user_token")
103+
body String
104+
createdAt DateTime @default(now()) @map("created_at")
105+
sessionId String @map("session_id")
104106
105-
session Session @relation("SessionChattings", fields: [sessionId], references: [sessionId])
107+
session Session @relation("SessionChattings", fields: [sessionId], references: [sessionId])
106108
createUserTokenEntity UserSessionToken @relation("TokenChattings", fields: [createUserToken], references: [token])
107-
}
109+
110+
@@index([sessionId])
111+
@@index([sessionId, chattingId(Sort.desc)])
112+
}

0 commit comments

Comments
 (0)