我必須做這兩個表之間的關系:
model Challenge {
id String @id @default(uuid()) @db.Uuid
user_challenges UserChallenges[]
winners UserChallenges[] @relation("ChallengeWinners")
@@map("challenges")
}
model UserChallenges {
challenge_id String @db.Uuid
user_id String @db.Uuid
challenge Challenge @relation(fields: [challenge_id], references: [id])
winners Challenge? @relation("ChallengeWinners", fields: [challenge_id], references: [id])
@@map("user_challenges")
}
但是 UserChalenges 表中的 @relation 回傳一個錯誤,指出:“決議屬性“@relation”時出錯:給定的約束名稱user_challenges_challenge_id_fkey在以下命名空間中必須是唯一的:UserChallenges主鍵、索引、唯一約束和外鍵的模型。請使用map引數提供不同的名稱。”。
它不應該與制作的別名一起使用嗎?為什么它試圖獲得相同的 fkey?
謝謝!
uj5u.com熱心網友回復:
你不能與同一個領域有關系。在這種情況下,user_challenges和winners可能是不同的用戶,因此您需要不同的欄位,如下所示:
model Challenge {
id String @id @default(uuid()) @db.Uuid
user_challenges UserChallenges[]
winners UserChallenges[] @relation("ChallengeWinners")
@@map("challenges")
}
model UserChallenges {
challenge_id String @db.Uuid
challenge_winner_id String @db.Uuid
user_id String @db.Uuid
challenge Challenge @relation(fields: [challenge_id], references: [id])
winners Challenge? @relation("ChallengeWinners", fields: [challenge_winner_id], references: [id])
@@map("user_challenges")
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/341498.html
標籤:PostgreSQL 外键 关系型数据库 棱镜
