我在Prisma中有一个不太直观的模型关系,用户--< Enrollment >-- 课程,我无法确定如何确保仅在该用户创建的课程中课程标题字段是唯一的。换句话说,我不希望一个用户创建多个具有相同名称的课程。但是我希望拥有相同名称但由不同创建者创建的课程存在。(只有创建者在Enrollment中扮演TEACHER角色)。
我面临的问题是,我不知道在哪里定义唯一属性以及应包括哪些字段。我想对要设置唯一约束的字段(课程名称、具有TEACHER角色的成员)进行设置,但这些字段跨越了不同的模型。
我面临的问题是,我不知道在哪里定义唯一属性以及应包括哪些字段。我想对要设置唯一约束的字段(课程名称、具有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])
}