[Prisma] @relation(name), enum

찐새·2022년 5월 28일
1

next.js

목록 보기
13/41
post-thumbnail
post-custom-banner

@relation(name)

둘 이상의 어트리뷰트가 하나의 모델을 참조할 때 사용한다.

model A {
	id    Int    @id @default(autoincrement())
    tmp1  B[]	 @relation(name: "tmp1")
  	tmp2  B[]	 @relation(name: "tmp2")
}

model B {
	id    	  Int    @id @default(autoincrement())
  	tempBy 	  A      @relation(name: "tmp1", fields: [tempByA], references: [id])
    tempByA   Int
    tempFor   A      @relation(name: "tmp2", fields: [tempForA], references: [id])
    tempForA  Int
}

enum

하나의 릴레이션을 여러 값으로 사용할 때 쓴다.

model Person {
	id Int @id @default(autoincrement())
  	name String
    kind Kind
}

enum Kind {
	Admin
  	User
}

// api url 구성 시
const adminUrl = "/api/person?kind=admin"
const userUrl = "/api/person?kind=user"

// api handler에서 호출 시
const kinds = await prisma.person.findMany({
	where: {
    	userId: user?id,
      	kind: "User",
    }
})

참고
노마드 코더 - 캐럿마켓 클론코딩

profile
프론트엔드 개발자가 되고 싶다
post-custom-banner

0개의 댓글