gpt4 book ai didi

Prisma 模式 - 从多个可能的外键(或关系)创建关系字段

转载 作者:行者123 更新时间:2023-12-02 00:03:50 24 4
gpt4 key购买 nike

如何在 Prisma 模式中创建一个以 2 个可能的关系标量字段为目标的关系字段

例如,在足球比赛中,假设我们有以下 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 ? */ ) // <----
}

Team.matches 关系字段定义中放置什么,以便允许 Team.matchs 包含团队从任何一方进行的任何比赛,如 team1 或 as团队 2?

最佳答案

这在 Prisma 中是不可能的!我在我们的 repo for technical specifications 中创建了一个问题想办法改进它!


解决方法

使用 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")
}

关于Prisma 模式 - 从多个可能的外键(或关系)创建关系字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61260181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com