我目前正在创建类似 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()为他们提供不同的关系名称。
你可以尝试一下吗
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])
}
因为您对友谊模型中的“用户”和“朋友”字段使用相同的关系名称“友谊”
要在 Prisma 中创建友谊模型,您需要在 schema.prisma 文件中定义架构。这是分步指南:
打开 Prisma 架构文件:通常命名为 schema.prisma。
定义用户模型:如果您尚未定义用户模型,则需要先定义用户模型。这是一个例子: 定义友谊模型:此模型将包含对友谊中涉及的用户的引用。 确保正确设置双向关系:用户模型的朋友字段引用友谊模型。 Friendship 模型引用两个 User 字段(user1 和 user2)。
具有两种模型的 Prisma 架构示例: 运行 Prisma Migrate:定义模型后,您需要运行迁移来更新数据库架构。