在我的 Prisma Schema 中,我发现很难理解如何在显式多对多关系的情况下创建记录。
我有以下架构。基本上它代表书籍列表。用户可以创建书籍列表。
用户可以创建一个新列表,然后将书籍连同他们自己的笔记一起添加到该列表中。图书模型是纯粹的,包含标准图书信息。
额外的模型是必需的,因为将书添加到列表的用户可以添加他自己的关于该书的注释。
model List {
id Int @default(autoincrement()) @id
title String
slug String?
content String?
published Boolean @default(false)
author User? @relation(fields: [authorId], references: [id])
authorId Int?
books BooksInLists[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model BooksInLists {
list List @relation(fields: [listId], references: [id])
listId Int // relation scalar field (used in the `@relation` attribute above)
book Book @relation(fields: [bookId], references: [id])
bookId Int // relation scalar field (used in the `@relation` attribute above)
@@id([listId, bookId])
adder User? @relation(fields: [adderId], references: [id])
adderId Int?
notes String?
}
model Book {
id Int @id @default(autoincrement())
name String
lists BooksInLists[]
curator User? @relation(fields: [curatorId], references: [id])
curatorId Int?
bookDescription String?
}
model User {
id Int @default(autoincrement()) @id
name String?
email String? @unique
lists List[]
books Book[]
booksinlists BooksInLists[]
@@map(name: "users")
}
我希望能够执行的查询。
在更新列表时,我应该能够将新书添加到列表中。这应该会创建新书,并且还允许我在
BooksInLists
模型中添加新记录以及“注释”字段。在更新列表时,我应该能够将现有书籍添加/连接到列表中。这将允许我在
BooksInLists
模型中添加一条新记录以及“注释”字段。