Prisma throwing error: Ambiguous relation detected

Prisma throwing error: Ambiguous relation detected

我正在使用 prisma 并尝试为我的 Postgres 数据库建立一个引用模型 table。不确定数据库模式是否正确,但我有一个 table 和 referIduserId:1 对 1,以及 referredUserId:1 对多。

model Referral {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  updatedAt DateTime @default(now())

  referId String // Auto Generate Random String

  userId Int  @unique
  user   User @relation(fields: [userId], references: [id])

  referredUsersId Int[]
  referredUsers   User[] @relation(fields: [referredUsersId], references: [id])
}

我不确定如何在用户模型中引用这些。我试过了

Referral        Referral? 
UsersReferred Referral[]

但是我得到一个错误

Error validating model "User": Ambiguous relation detected

建立推荐模型的正确方法是什么table,我如何在 prisma 中做到这一点?

相同的两个模型之间存在多个关系,因此您需要指定关系的名称。

model User {
  id            String     @id
  Referral      Referral?  @relation("UserReferral")
  UsersReferred Referral[] @relation("ReferredUsers")
}

model Referral {
  id              Int      @id @default(autoincrement())
  createdAt       DateTime @default(now())
  updatedAt       DateTime @default(now())
  referId         String
  userId          String   @unique
  user            User     @relation(fields: [userId], references: [id], name: "UserReferral")
  referredUsersId String
  referredUsers   User     @relation(fields: [referredUsersId], references: [id], name: "ReferredUsers")
}

这里是消除歧义关系的参考:Reference