Node.js Prisma2:如何设计与数组类型模型相关的模式?
我在设计模式时遇到了一些问题 案例1:Node.js Prisma2:如何设计与数组类型模型相关的模式?,node.js,database,database-design,graphql,prisma2,Node.js,Database,Database Design,Graphql,Prisma2,我在设计模式时遇到了一些问题 案例1: model User { package: @relation(fields: [authorId], references: [id]) packageId: Int } model Package { user User[] } 一个软件包可以被数百个用户订阅。所以,我认为这是一条路要走。但是,问题是,当一个包需要被删除时,用户(管理员)也需要被删除。这是我们不想要的 案例2: model User { package Packag
model User {
package: @relation(fields: [authorId], references: [id])
packageId: Int
}
model Package {
user User[]
}
一个软件包可以被数百个用户订阅。所以,我认为这是一条路要走。但是,问题是,当一个包需要被删除时,用户(管理员)也需要被删除。这是我们不想要的
案例2:
model User {
package Package[]
}
model package {
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}
通过这种方式设计,当删除包时,用户不会被删除。
但是我不能将多个用户连接到一个包。我认为必须从双方显式地建立关系模型,才能获得一个完整的解决方案。毕竟,所有用户都可以订阅多个软件包,软件包可以有多个用户订阅
model User {
id Int @id @default(autoincrement())
packages Package[] @relation(references: [id])
}
model Package {
id Int @id @default(autoincrement())
user User[] @relation(references: [id])
}