😍
同一テーブルへ複数の参照があるテーブルをPrismaで定義する
概要
- userとcoupleのそれぞれのテーブルを定義します。
- userには一意となるユーザーが存在します。
- coupleには一意となるユーザーの組み合わせのレコードが存在します。
状況図解
テーブル定義
schema.prisma
model User {
id String @id @default(uuid())
name String
user1 Couple? @relation("user1")
user2 Couple? @relation("user2")
}
model Couple {
id String @id @default(uuid())
userId1 String @unique
user1 User @relation("user1", references: [id], fields: [userId1])
userId2 String @unique
user2 User @relation("user2", references: [id], fields: [userId2])
}
終わりに
- こう言う状況の名称がわからず困ったので、どなたかの助けになれば幸いです。
- 同一人物でcoupleとしてのレコードができないようにはしていないのでご注意ください。
- 開発物の都合上、複合ユニークにはしておりません。
Discussion