0

如果我有一个如下所示的模式,其中用户可以有许多图像,但我没有图像上的字段来指向用户。如何保存新图像并将其连接到用户?我在想我会省略该User字段,Image Type因为我没有理由根据图像 ID 查询用户。但我不知道如何使用生成的 prisma 客户端进行调用以保存。

type User {
  id: ID! @id
  name: String
  images: [Image] @relation(onDelete: CASCADE)
}

type Image{
  id: ID! @id
  createdAt: DateTime! @createdAt
  filename: String!
}

通常我的创建调用,它将创建与另一个表连接起来,如下所示,但我相信这段代码需要我的类型user上的一个字段。Image

context.prisma.createImage({
      filename: "test",
      user: { connect: { id: args.user.id } }
    })

我是否正确地考虑了这一点?您是否应该始终在具有这种关系的两个表之间进行双向引用?

没有指向用户的链接的主要好处之一是我可以将图像表用于用户以外的事物。比如产品什么的。

4

1 回答 1

0

我相信我已经弄清楚了。我删除了类型User上的字段,Image就像我开始做的那样。现在,当我向用户添加图像时,我会像这样使用客户端:

await context.prisma.updateUser({
        where: {
          id: 'cjx4wh7412oyc0b42tbhsu6ez',
        },
        data: {
          images: {
            create: {
              postedBy: { connect: { id: userId } },
              filename: result.filename,
              path: result.path,
              mimetype: result.mimetype,
            }
          }
        }
      })
于 2019-08-27T01:34:42.820 回答