javascript - 显式多对多关系 prisma

标签 javascript relationship prisma prisma2

我有这 3 个 prisma 模型,

model user {
  id                        String                 @id @default(cuid())
  createdAt                 DateTime               @default(now())
  updatedAt                 DateTime               @default(now())
  courses                   userOnCourse[]
}

model course {
  id                      String                         @id @default(cuid())
  createdAt               DateTime                       @default(now())
  updatedAt               DateTime                       @default(now())
  users                   userOnCourse[]
  title                   String
  description             String
}

model userOnCourse {
  createdAt     DateTime    @default(now())
  user          user        @relation(fields: [userId], references: [id])
  userId        String
  course        Course      @relation(fields: [courseId], references: [id])
  courseId      String

  @@id([userId, courseId])
}

这是一个多对多关系,其中一个用户可以拥有多个类(class),一个类(class)可以有多个用户,为了引用显式的 m-m 关系,我创建了另一个模型名称 userOnCourse

我正在努力将 courseId 的引用传递到 userOnCourse 模型中,我想将类(class)与 userid 一起连接到该模型中,但由于它是在运行时创建的,因此似乎无法在编译时传递 courseId。

这里是代码,假设我们在创建类(class)时已经有了用户数据,如何传递在运行时创建的courseId,并建立连接。

我正在关注这个 reference来自棱镜文档。

const createCourse = await prisma.course.create({
            data: {
                title: courseData.title,
                description: courseData.description,
                users: {
                    connect: {
                        userId_courseId: {
                            userId: user.id,
                            courseId: ?? // That is where the problem is, how can i add the coursesId?
                        },
                    },
                },
            },
        });

最佳答案

您需要的是create 而不是connect。您需要在映射 UserCourse 的多对多表中创建一个新条目。因此,您需要创建该条目。

代码为:

await prisma.course.create({
    data: {
      description: 'des',
      title: 'title',
      users: { create: { userId: user.id } },
    },
})

关于javascript - 显式多对多关系 prisma,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67894860/

相关文章:

javascript - 捕获删除哈希

javascript - 从扩展脚本中的路径递归填充 TreeView

javascript - 如何计算字符串中的数字

class - 如何使用 UML 图显示哪个类的变量用于哪个类的操作?

Prisma self relation 显示相关帖子

graphql - <ReferenceArrayInput/> 无法与我的自定义数据提供程序 (prisma) 配合使用

javascript - CreateJS - 为什么在创建 createjs 位图时仅使用路径适用于 Firefox 而不适用于 Chrome

python - SQLAlchemy - 关系不仅限于外键

sql - Prisma 更新与 WHERE 属性中的关系

javascript - 如何更改 EmberJS 关系的空值