【发布时间】:2021-10-04 13:26:57
【问题描述】:
我在 nodejs 中使用 prisma orm 并具有以下架构(示例)
model User
{
id Int @id @default(autoincrement())
answers Answer[]
}
model Product
{
id Int @id @default(autoincrement())
questions Question[]
}
model Question
{
id Int @id @default(autoincrement())
products Product[]
answers Answer[]
}
model Answer
{
id Int @id @default(autoincrement())
userId Int
user User @relation(fields: [userId], references: [id])
productId Int
product Product @relation(fields: [productId], references: [id])
questionId Int
question Question @relation(fields: [questionId], references: [id])
}
是否可以获得带有问题的产品列表以及每个问题的最新答案?
我遇到的问题是,嵌套包含不尊重祖父母身份。
例如,在这段代码中:
let products = await prisma.product.findMany({
include: {
questions: {
include: {
answers: true
}
}
}
})
每个问题的返回答案也不属于我希望他们所属的产品。
我错过了什么?
【问题讨论】:
-
我有两个问题。首先,如果单个
Question可以与多个Product记录相关,那么为什么某个Question的答案只与一个Product相关。它不应该与Question本身关联的所有Products相关联吗?我对您的业务逻辑/领域一无所知,我可能是错的,所以澄清会有所帮助。其次,您的架构的User和Product模型中缺少Answer[]关系,a。这是偶然的吗? -
目前只是评估,但这里是示例数据。例如,有“手机”和“手机壳”产品,问题是“您对产品的满意度如何”和“您对运输/包装的满意度如何”用户然后针对每个问题-产品对给出答案, 所以“你对你的产品满意吗”——对于产品“手机”和你对你的产品满意吗”——对于产品“手机壳”和第二个问题类似。关于 Answer[] 关系,它的意外是,我会编辑。
标签: node.js typescript prisma