본문 바로가기

백엔드/Prisma + GraphQL

[인스타그램 클론코딩] Prisma2 데이터 모델링

UserFollows Relation은 Self Relation이고, 나머지는 1:N Relation입니다.

참조: 1:1 Relation

schema.prisma

Nullable은 사용하지 않았습니다. 대신 default 값으로 빈 문자열(@default(value: ""))지정해 주었습니다.

그리고 배열은 아무것도 없는 경우 [] 반환하므로 ? 사용할 필요도 없고 사용하지도 못합니다.

저는 Relation을 통해서 저장소들이 연결되는 통로를 만들었다고 생각합니다.

1:N Relation

  • User(1) → Post(N) → User(1)
  • User(1) → Like(N) → User(1)
  • User(1) → Comment(N) → User(1)
  • Post(1) → Like(N) → Post(1)
  • Post(1) → Comment(N) → Post(1)
  • Post(1) → File(N) → Post(1)

Self Relation

  • UserFollows

[인스타그램 클론코딩] Prisma2 데이터 모델링

schema.prisma 파일은 데이터베이스에 테이블을 만들고, 백앤드에서 해당 테이블이 접근하는 Prisma 클라이언트를 만들기 위한 설정 파일일 뿐입니다.

 

다음 포스트에서 위의 schema.prisma 파일을 사용해서 실제 데이터베이스에 테이블을 생성해 보겠습니다.

참조: Prisma2 CLI를 사용하여 데이터베이스 테이블 생성