티스토리 뷰
1. 개요
Prisma에서 composite id는 여러 개의 필드를 조합해 고유한 식별자를 만드는 데 사용된다. 이는 데이터베이스 테이블에서 composite primary key 역할을 하며 각 필드의 조합이 고유해야 하는 경우 유용하다.
2. 예시
model Like {
created_at DateTime @default(now())
updated_at DateTime @updatedAt
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
post Post @relation(fields: [postId], references: [id], onDelete: Cascade)
userId Int
postId Int
@@id(name: "id", [userId, postId])
}
이 코드에서 id가 바로 composite id이다. id는 고유한 식별자 역할을 하는 userId와 postId의 조합으로 구성된다.
const likeCount = await db.like.count({
where: {
postId,
},
});
이 코드는 userId 값과는 상관없이, postId가 일치하는 모든 항목의 개수를 세는 코드이다.
3. 특징 및 주의사항
- 복합적인 유일성 보장: 단일 필드의 기본 키로는 고유성을 보장하기 어렵지만 두 개 이상의 필드를 이용하면 고유할 경우 유용
- Prisma에서 업데이트나 삭제 작업 시 쿼리가 다소 복잡해질 수도 있음
- 일부 데이터베이스에서 인덱스 성능에 영향을 줄 수도 있음
'기록' 카테고리의 다른 글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 타입스크립트
- SQL
- 스택
- NextJS
- aws
- 리액트
- themoviedb
- 자바스크립트
- 넥스트js
- 백준
- 구현
- 알고리즘
- 비트마스킹
- CSS
- 브루트포스
- 카카오맵
- 프로그래머스
- BFS
- async
- Next.js
- Redux
- 순열
- 코드스테이츠
- 동적계획법
- 햄버거버튼
- 다이나믹프로그래밍
- C++
- typescript
- react
- 완전탐색
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함