Level Up Life (투두 앱) 만들기 _____(4)

석원·2024년 1월 17일

LevelUpLife

목록 보기
4/4
post-thumbnail

Schema 설계 및 최소한의 API 작업을 진행 했습니다.

Schema

User

model User {
  id Int @id @default(autoincrement())
  email String @unique
  nickname String @unique
  password String
  createdAt DateTime @default(now())
  level Level @relation(fields: [levelId], references: [id])
  levelId Int @default(1)
  curExperience Int @default(0)
  todos Todo[]
}

Level

model Level {
  id Int @id @default(autoincrement())
  level Int
  maxExperience Int
  user User[]
}

Todo

model Todo {
  id Int @id @default(autoincrement())
  title String 
  description String?
  priority PRIORITY @default(LOW)
  user User @relation(fields: [userId], references: [id])
  userId Int
  completed Boolean @default(false)
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}

enum PRIORITY {
  LOW
  MEDIUM
  HIGH
}

User와 Todo는 1:M 관계를 설정해주었습니다.
Level과 User도 1:M 관계를 설정해주었습니다.
처음에 설계할 때, 헷갈려서 1:1 관계를 줘야지 했는데, 그렇게 했을 때, 사용자가 1개의 레벨만 갖게되어 같은 레벨에 추가되지 않는 문제를 겪고, 1:M관계로 수정 했습니다.

추후에 Task 또는 Project 같은 Todo를 묶을수 있는 테이블을 추가해볼 예정입니다.
API 명세는 Postman을 이용하여 작성을 해봤습니다.
API 확인하기


다음 게시글에서는 메인, 로그인, 회원가입 페이지를 구현하고,
next-auth를 활용하여 로그인 동작까지 작업한 내용을 포스팅 하려고합니다.

0개의 댓글