PostgreSQL Prisma enum

agnusdei·2023년 7월 5일
0
post-custom-banner
enum UserRole {
  NORMAL
  INFLUENCER
}


model User {
  id              String            @id @default(uuid())
  kakaoId         String            @unique
  nickname        String            @unique
  email           String?           @unique
  status          String?
  role            UserRole
  images          String[]
  instagramUrls   String[]
  youtubeUrls     String[]
  createdAt       DateTime          @default(now())
  updatedAt       DateTime          @default(now()) @updatedAt
  deletedAt       DateTime?
  blockedAt       DateTime?
  shortVideoLikes ShortVideoLikes[]
  ShortVideo      ShortVideo[]
}


model ShortVideo {
  id           String            @id @default(uuid())
  title        String
  tags         String[]
  status       ShortVideoStatus  @default(PENDING)
  rejectReason String?
  videoPath    String?
  viewCount    Int
  likeCount    Int
  createdAt    DateTime          @default(now())
  updatedAt    DateTime          @default(now()) @updatedAt
  deletedAt    DateTime?
  rejectedAt   DateTime?
  user         User              @relation(fields: [userId], references: [id])
  userId       String
  likes        ShortVideoLikes[]
}
  1. PostgreSQL 특성상 DB 에 오브젝트를 등록하여 사용할 수 있습니다.

  2. Enum 을 활용하면 테이블 선언 없이 열거형 데이터를 활용할 수 있으며 내부적으로 인덱싱이 되므로, 조회 시 굉장히 빠른 조회가 가능합니다.

enum 이 없는 경우 : 모든 행을 한 행씩 조회하며 유저 타입을 확인

enum 이 있는 경우 : influencer 값을 가지고 있는 얘들만 인덱싱 되어 전체 행 조회가 필요 없음

post-custom-banner

0개의 댓글