gpt4 book ai didi

javascript - Prisma 中的数据建模与关系

转载 作者:行者123 更新时间:2023-12-05 00:26:35 28 4
gpt4 key购买 nike

我在理解 Prisma 中的关系和数据建模时遇到问题。我有一个关于两个可以参加网球比赛的用户的“简单”示例。所以我有:

Model User {
id Int @id
name String
}

Model Game {
id Int @id
player1 PlayerInGame
player2 PlayerInGame
}

Model PlayerInGame {
id Int @id
player User
game Game
}
它给了我这个错误:
Error validating model "Game": Ambiguous relation detected. The fields `player1` and `player2` in model `Game` both refer to `PlayerInGame`. Please provide different relation names for them by adding `@relation(<name>).
我怎样才能解决这个问题?
提前致谢。
我也尝试在 @relation 字段中,但这给了我以下错误:
model Game {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
player1 PlayerInGame @relation("player1")
player2 PlayerInGame @relation("player2")
}


Error validating model "Game": Automatic related field generation would cause a naming conflict. Please add an explicit opposite relation field.

最佳答案

您可以通过在 PlayerInGame 上提供两个关系字段来修复此错误。 .您在 Game 上有两个关系字段.因此,您还需要 PlayerInGame 上的两个相反的关系字段.在您的应用程序逻辑中,您必须确保只设置了这两个关系字段之一。所以只有 PlayerInGame.gameAsPlayer1PlayerInGame.gameAsPlayer2应根据您的业务领域进行设置。

model User {
id Int @id
name String
}

model Game {
id Int @id
player1 PlayerInGame @relation("GamePlayer1")
player2 PlayerInGame @relation("GamePlayer2")
}

model PlayerInGame {
id Int @id
player User
gameAsPlayer1 Game? @relation("GamePlayer1")
gameAsPlayer2 Game? @relation("GamePlayer2")
}

关于javascript - Prisma 中的数据建模与关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63331714/

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