티스토리 뷰

반응형

 

✅ Prisma에서 데이터 모델링하기 – 관계형 DB를 위한 실전 가이드

"SQL을 몰라도 Prisma 모델만 알면, DB 구조 설계는 끝!"
관계형 데이터베이스 설계, Prisma에서 이렇게 쉽고 직관적일 수 있습니다.


🎯 Prisma의 데이터 모델링이란?

Prisma는 ORM 중에서도 코드 기반 모델 정의가 뛰어난 도구입니다.
schema.prisma 파일에 데이터 모델을 정의하고, 이를 기반으로:

  • DB 스키마 자동 생성 (Migrate)
  • Prisma Client 자동 생성 (generate)
  • 타입 자동 반영 (IntelliSense)

모두 가능합니다.


🧱 모델 정의 기본 구조

model User {
  id    Int    @id @default(autoincrement())
  name  String
  email String @unique
}

키워드 설명

model 테이블 단위
@id 기본 키 (Primary Key)
@default 기본값 지정
@unique 유니크 제약 조건

🔗 관계형 모델링 (Relational Modeling)

✅ 1:1 관계 (One-to-One)

model User {
  id    Int    @id @default(autoincrement())
  profile Profile?
}

model Profile {
  id     Int    @id @default(autoincrement())
  bio    String
  user   User   @relation(fields: [userId], references: [id])
  userId Int    @unique
}

✅ 1:N 관계 (One-to-Many)

반응형
model User {
  id    Int     @id @default(autoincrement())
  name  String
  posts Post[]
}

model Post {
  id      Int   @id @default(autoincrement())
  title   String
  user    User  @relation(fields: [userId], references: [id])
  userId  Int
}

✅ Prisma Client에서는 user.posts, post.user 형식으로 쉽게 관계 접근이 가능합니다.


✅ N:M 관계 (Many-to-Many)

model Post {
  id       Int      @id @default(autoincrement())
  title    String
  tags     Tag[]    @relation("PostTags")
}

model Tag {
  id       Int      @id @default(autoincrement())
  name     String
  posts    Post[]   @relation("PostTags")
}

🔥 중간 테이블은 Prisma가 자동 생성 & 관리합니다.


🧬 열 타입 (Field Types)

타입 설명

String 문자열
Int 정수
Float 부동 소수점
Boolean 불리언
DateTime 날짜 및 시간
Json JSON 데이터
Decimal 정밀 숫자 (금융 계산에 유용)
Bytes 이진 데이터

✨ 필드 속성 (Field Attributes)

속성 예시 설명

@default() @default(now()) 기본값 설정
@unique email String @unique 유니크 제약 조건
@updatedAt updatedAt DateTime @updatedAt 자동 업데이트 시간
@map() @map("user_name") DB 컬럼명을 수동 지정

🧠 실무 팁: Prisma 모델 설계 시 유의점

  • 필수 필드 vs 선택적 필드 → String vs String?
  • Prisma에서는 관계형 필드를 정의할 때 @relation + FK + 참조 필드 3종 세트가 필수
  • @id @default(autoincrement())는 대부분 모델에서 기본 세팅
  • enum 타입도 지원 가능 → enum Role { USER ADMIN }

✅ 정리: Prisma의 데이터 모델링은 SQL보다 쉽다

항목 Prisma 모델링

테이블 생성 model 키워드로 정의
기본키, FK @id, @relation
관계 설정 코드로 직관적 연결
필드 타입 TypeScript처럼 명확
마이그레이션 migrate dev로 자동 적용

 

Prisma 데이터 모델링,Prisma 관계형 모델,Prisma schema.prisma,Prisma 1:N 관계,Prisma Many to Many,TypeScript ORM,DB 모델링 쉽게 하기,Prisma 필드 타입,Prisma 실무 설계 팁,Node.js ORM 설계


 

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함
반응형