如何在 prisma 中创建可选列表字段
how to create a optional list field in prisma
我正在使用 nodejs 和 prisma 创建一个基本的 crud api。我的架构如下:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
shadowDatabaseUrl = env("SHADOW_DATABASE_URL")
}
model Category {
id String @unique @default(cuid())
title String
description String
products Product[]
}
model Product {
id String @unique @default(cuid())
title String
description String
price Float
createdAt DateTime @default(now())
updatedAt DateTime?
category Category? @relation(fields: [categoryId], references: [id])
categoryId String?
}
我正在尝试将类别模型中的产品字段设置为可选。但 Prisma 不允许这样做。但我希望我的用户即使不创建 post 也能创建一个类别,反之亦然。我该如何解决这个问题?
根据 Prisma 文档,列表不能是可选的:https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#remarks-5
但是,products
字段不是可选的并不意味着在创建新的 Category
时它不能为空:
await prisma.category.create({
data: {
title: 'books',
description: 'books',
products: {},
}
})
然后您可以稍后创建或连接产品:
await prisma.category.update({
where: {
id: "category-id"
},
data: {
products: {
connect: {
id: "product-id"
}
}
}
})
我正在使用 nodejs 和 prisma 创建一个基本的 crud api。我的架构如下:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
shadowDatabaseUrl = env("SHADOW_DATABASE_URL")
}
model Category {
id String @unique @default(cuid())
title String
description String
products Product[]
}
model Product {
id String @unique @default(cuid())
title String
description String
price Float
createdAt DateTime @default(now())
updatedAt DateTime?
category Category? @relation(fields: [categoryId], references: [id])
categoryId String?
}
我正在尝试将类别模型中的产品字段设置为可选。但 Prisma 不允许这样做。但我希望我的用户即使不创建 post 也能创建一个类别,反之亦然。我该如何解决这个问题?
根据 Prisma 文档,列表不能是可选的:https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#remarks-5
但是,products
字段不是可选的并不意味着在创建新的 Category
时它不能为空:
await prisma.category.create({
data: {
title: 'books',
description: 'books',
products: {},
}
})
然后您可以稍后创建或连接产品:
await prisma.category.update({
where: {
id: "category-id"
},
data: {
products: {
connect: {
id: "product-id"
}
}
}
})