如何在Prisma中创建友谊模型?

问题描述 投票:0回答:2

我目前正在创建类似 Facebook 的东西,但在尝试在 Prisma 中建模友谊时遇到了困难。

我当前的用户模型:

model User {
id String @id

handle String @unique

created_at DateTime @default(now())
updated_at DateTime @updatedAt

account Account @relation(fields: \[id\], references: \[id\])
}

我目前的友谊模型:

model Friendship {
  id String @id @default(cuid())

  user_id String
  user    User   @relation(name: "friendships", fields: [user_id], references: [id])

  friend_id String
  friend    User   @relation(name: "friendships", fields: [friend_id], references: [id])

  created_at DateTime @default(now())
  updated_at DateTime @updatedAt

  @@unique([user_id, friend_id])
@@unique([friend_id, user_id])
}

我收到错误:验证模型“友谊”时出错:检测到错误命名的关系。模型

user
中的字段
friend
Friendship
都使用相同的关系名称。请通过`@relation()为他们提供不同的关系名称。

如前所述,我尝试在 Prisma 中创建友谊模型,但是收到错误:验证模型“友谊”时出错:检测到错误命名的关系。模型

user
中的字段
friend
Friendship
都使用相同的关系名称。请通过`@relation()为他们提供不同的关系名称。

database model nestjs backend prisma
2个回答
0
投票

你可以尝试一下吗

model Friendship {
  id String @id @default(cuid())

  user_id String
  user    User   @relation(name: "user_friendships", fields: [user_id], references: [id])

  friend_id String
  friend    User   @relation(name: "friend_friendships", fields: [friend_id], references: [id])

  created_at DateTime @default(now())
  updated_at DateTime @updatedAt

  @@unique([user_id, friend_id])
  @@unique([friend_id, user_id])
}

因为您对友谊模型中的“用户”和“朋友”字段使用相同的关系名称“友谊”


0
投票

要在 Prisma 中创建友谊模型,您需要在 schema.prisma 文件中定义架构。这是分步指南

打开 Prisma 架构文件:通常命名为 schema.prisma。

定义用户模型:如果您尚未定义用户模型,则需要先定义用户模型。这是一个例子: 定义友谊模型:此模型将包含对友谊中涉及的用户的引用。 确保正确设置双向关系:用户模型的朋友字段引用友谊模型。 Friendship 模型引用两个 User 字段(user1 和 user2)。

具有两种模型的 Prisma 架构示例: 运行 Prisma Migrate:定义模型后,您需要运行迁移来更新数据库架构。

© www.soinside.com 2019 - 2024. All rights reserved.