如何创建一个relation field以 2 为目标的 prisma 模式relation scalar fields?
例如,在足球中,假设我们有以下 2 个模型:
model Match {
team1Id Int
team1 Team @relation("team1", fields: [team1Id], references: [id])
team2Id Int
team2 Team @relation("team2", fields: [team2Id], references: [id])
}
model Team {
id Int @default(autoincrement()) @id
name String
matches Match[] @relation( /* What to put here ? */ ) // <----
}
Run Code Online (Sandbox Code Playgroud)
Team.matches为了允许Team.matchs包含球队从任何一方(如 team1 或 team2)进行的任何比赛,在关系字段定义中应放入什么内容?
这在 Prisma 中目前是不可能的!我在我们的存储库中为技术规范创建了一个问题,以思考改进的方法!
解决方法
使用 Prisma,您始终需要在每个关系的两侧都有一个关系字段。这意味着您需要在 上有两个关系字段Team,一个代表球队“作为球队 1”参加的比赛,另一个代表球队“作为球队 2”参加的比赛。
model Match {
team1Id Int
team1 Team @relation("team1", fields: [team1Id], references: [id])
team2Id Int
team2 Team @relation("team2", fields: [team2Id], references: [id])
@@id([team1Id, team2Id])
}
model Team {
id Int @default(autoincrement()) @id
name String
matchesAsTeam1 Match[] @relation("team1")
matchesAsTeam2 Match[] @relation("team2")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5140 次 |
| 最近记录: |