我在 Prisma 中有这种不那么简单的模型关系。用户 --< 注册 >-- 课程,我不知道如何确保课程标题字段在该用户创建的课程中是唯一的。换句话说,我不希望一个用户创建多个具有相同名称的课程。但我希望课程与不同的创作者同名。(只有创作者在注册中具有 TEACHER 角色)
我面临的问题是,我不知道在哪里定义唯一属性以及要包含哪些字段。我想对(课程名称,具有教师角色的成员)进行唯一约束的字段跨不同的模型。
model User {
id Int @id @default(autoincrement())
email String @unique
passwordHash String
enrollments Enrollment[]
}
model Course {
id Int @id @default(autoincrement())
name String
members Enrollment[]
}
model Enrollment {
role UserRole @default(STUDENT)
// Relation Fields
userId Int
courseId Int
user User @relation(fields: [userId], references: [id])
course Course @relation(fields: [courseId], references: [id])
@@id([userId, courseId])
@@index([userId, role])
}