我想知道为什么我的模型(Like-model)不能按我的预期工作。
也许有人可以解释一下?
model User {
id Int @id @default(autoincrement())
likes Like[]
}
model Like {
fromUser User @relation(fields: [fromUserId] references: [id])
fromUserId Int
toUser User @relation(fields: [toUserId] references: [id])
toUserId Int
@@id([fromUserId, toUserId])
}
Run Code Online (Sandbox Code Playgroud)
错误如下:Error validating: This line is not a valid field or attribute definition.
它指向fromUser User @relation(fields: [fromUserId] references: [id])和toUser User @relation(fields: [toUserId] references: [id])。
您需要按以下方式建模您的关系:
model User {
id Int @id @default(autoincrement())
likedUsers Like[] @relation("likedUsers")
usersWhoLiked Like[] @relation("usersWhoLiked")
}
model Like {
id Int @id @default(autoincrement())
likedUser User? @relation("likedUsers", fields: [likedUserId], references: [id])
likedUserId Int?
userWhoLiked User? @relation("usersWhoLiked", fields: [userWhoLikedId], references: [id])
userWhoLikedId Int?
}
Run Code Online (Sandbox Code Playgroud)
每当您与模型有超过 1 个关系时,您就需要提供一个关系名称来消除关系的歧义。
您还需要存储您喜欢的用户以及喜欢当前用户的用户。所以你需要两个关系来做到这一点。
| 归档时间: |
|
| 查看次数: |
6319 次 |
| 最近记录: |