πŸ”Ί Prisma ν…Œμ΄λΈ” μ •μ˜ν•΄λ³΄κΈ°

JeanΒ·2025λ…„ 1μ›” 31일

ν”„λ¦¬μ¦ˆλ§ˆλ₯Ό 처음 써본닀!
λͺ¨λΈμ„ 보고 쑰금 λ‹Ήν™©ν•΄μ„œ μ¨λ³΄λŠ” μ½”λ“œ 파먹기!


✏️ Users ν…Œμ΄λΈ”μ„ μƒμ„±ν•˜λŠ” μ½”λ“œ

model Users {
  userId      Int     @id @default(autoincrement()) @map("id")
  nickname    String  @unique @map("nickname")
  point       Int     @default(100) @map("userPoint")
  userInfo    String? @map("info") @db.Text

  createdAt DateTime @default(now()) @map("createdAt")
  updatedAt DateTime @updatedAt @map("updatedAt")

  @@map("Users")
}

πŸ”Ž μœ„μ˜ ν…Œμ΄λΈ”μ„ λ§Œλ“œλŠ” μ½”λ“œλ₯Ό νŒŒν—€μ³λ΄…μ‹œλ‹€

model Users {
  • Users λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ„ μ •μ˜ν•œλ‹€
  • Prismaμ—μ„œλŠ” model ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ ν…Œμ΄λΈ”μ„ μ •μ˜ν•  수 μžˆλ‹€
userId      Int     @id @default(autoincrement()) @map("id") @unique
point       Int     @default(100) @map("userPoint")
userInfo    String? @map("info") @db.Text
  • userId λŠ” ν…Œμ΄λΈ”μ˜ κΈ°λ³Έ ν‚€ (Primary Key)
  • Int λŠ” νƒ€μž…μœΌλ‘œ μ •μˆ˜, λ¬Έμžμ—΄λ“±μ΄ 올 수 μžˆλ‹€.
  • @id 이 ν•„λ“œκ°€ κΈ°λ³Έ ν‚€μž„μ„ μ•Œλ¦°λ‹€
  • @default(autoincrement()) μžλ™ 증가(AUTO_INCREMENT) μ˜΅μ…˜μ„ μ„€μ •ν•˜μ—¬ μƒˆ λ ˆμ½”λ“œκ°€ 좔가될 λ•Œ μžλ™μœΌλ‘œ μ¦κ°€ν•˜λŠ” 값을 μ€€λ‹€
  • @map("id") λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 이 컬럼의 μ‹€μ œ 이름을 "id"둜 μ„€μ •
    Prismaμ—μ„œλŠ” userIdλ₯Ό μ‚¬μš©ν•˜μ§€λ§Œ, DBμ—μ„œλŠ” "id" 컬럼으둜 μ €μž₯λœλ‹€
  • @unique 고유 κ°’(Unique) μ œμ•½ 쑰건을 μ„€μ •ν•˜μ—¬ 같은 값이 두 번 λ“€μ–΄κ°€μ§€ μ•Šλ„λ‘ν•œλ‹€
  • String? null 값을 ν—ˆμš©ν•œλ‹€λŠ” 의미
  • @db.Text λ°μ΄ν„°λ² μ΄μŠ€μ˜ TEXT νƒ€μž…μ„ μ‚¬μš©ν•˜λ„λ‘ μ§€μ •ν•©λ‹ˆλ‹€.
createdAt DateTime @default(now()) @map("createdAt")
updatedAt DateTime @updatedAt @map("updatedAt") 
  • @default(now()) 기본값을 now()둜 μ„€μ •ν•˜μ—¬ μƒˆλ‘œμš΄ 데이터가 생성될 λ•Œ ν˜„μž¬ λ‚ μ§œ/μ‹œκ°„μ΄ μžλ™μœΌλ‘œ μ €μž₯λœλ‹€.
  • @updatedAt 데이터가 μ—…λ°μ΄νŠΈλ  λ•Œλ§ˆλ‹€ μžλ™μœΌλ‘œ ν˜„μž¬ μ‹œκ°„μœΌλ‘œ λ³€κ²½
  @@map("Users")
  • @@map("Users") λ₯Ό μ‚¬μš©ν•˜λ©΄ ν…Œμ΄λΈ” 이름을 κ°•μ œλ‘œ "Users"둜 μ„€μ •ν•  수 μžˆλ‹€

πŸ’ͺ 좔가사항

@map()

βœ… Prisma ν•„λ“œλͺ…κ³Ό DB 컬럼λͺ…이 κ°™λ‹€λ©΄ @map()을 μƒλž΅ν•΄λ„ 됨!
βœ… Prisma ν•„λ“œλͺ…이 λ‹€λ₯Ό 경우 @map("DB 컬럼λͺ…")을 μ‚¬μš©ν•΄μ•Ό 함!
βœ… ν…Œμ΄λΈ”λͺ…λ§Œ λ‹€λ₯Ό 경우 @@map("ν…Œμ΄λΈ”λͺ…")을 μ‚¬μš©ν•˜λ©΄ 됨!

데이터 νƒ€μž…

βœ… Prismaμ—μ„œ 기본적으둜 String은 VARCHAR(191)둜 μ €μž₯ 함!

λ‹¨μˆ˜? 볡수?

βœ… PrismaλŠ” 기본적으둜 λͺ¨λΈ 이름(Users)을 λ‹¨μˆ˜ν˜• (User)으둜 μΈμ‹ν•˜μ—¬ μžλ™μœΌλ‘œ ν…Œμ΄λΈ” 이름을 User둜 섀정함

profile
ν–‡λ‚΄κΈ° 개발자 지망생

0개의 λŒ“κΈ€