Prisma 抛出错误:检测到不明确的关系

Jes*_*ica 2 sql postgresql prisma

我正在使用 prisma 并尝试为我的 Postgres 数据库建模引用表。不确定数据库模式是否正确,但我有一个表,其中包含referId, userId: 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])
}
Run Code Online (Sandbox Code Playgroud)

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

Referral        Referral? 
UsersReferred Referral[]
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误

验证模型“用户”时出错:检测到不明确的关系

建立参考表模型的正确方法是什么?我该如何在 prisma 中做到这一点?

Nur*_*ani 5

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

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")
}
Run Code Online (Sandbox Code Playgroud)

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