【发布时间】:2022-10-13 18:18:13
【问题描述】:
每个 FileUpload 都应该有一个“父”ProjectDraft。
每个 ProjectDraft 应该有两个不同的可选字段,每个字段都可以引用一个 FileUpload。
如果我在原始 SQL 中执行此操作,我可能在 ProjectDraft 上有两个字段,每个字段都是可选的并引用一个 FileUpload(通过 id)。
这是我当前的架构:
model ProjectDraft {
id String @id @default(cuid())
name String
heroImage FileUpload?
otherImage FileUpload?
}
model FileUpload {
id String @id @default(cuid())
fileKey String @unique
projectDraft ProjectDraft @relation(fields: [projectDraftId], references: [id])
projectDraftId String @unique
}
prisma format 最初想在 FileUpload 模型上创建一个 ProjectDraft ProjectDraft[] 数组字段(我认为是一对多),但这不是我想要的(这将允许 FileUpload 没有父级或更多比一位家长)。
对于我当前的模式,prisma format 说:
Error validating model "ProjectDraft": Ambiguous relation detected. The fields `heroImage` and `otherImage` in model `ProjectDraft` both refer to `FileUpload`. Please provide different relation names for them by adding `@relation(<name>).
我可以为 ProjectDraft 字段添加关系名称,但是这两个关系最终在 FileUpload 上是相同的(因为每个 FileUpload 应该只有一个父级)。
我究竟做错了什么?我觉得我在这里缺少一个基本概念。
【问题讨论】: