Prisma2:如何设计与数组类型模型相关的模式?
Prisma2: how to design schema which has relation with Array type Model?
我在设计架构时遇到了一些问题。
案例 1:
model User {
package: @relation(fields: [authorId], references: [id])
packageId: Int
}
model Package {
user User[]
}
一个包可以被数百个用户订阅。所以,我认为这是要走的路。但是,问题是,当需要删除包时,也需要删除用户(admin)。我们不想要
案例 2:
model User {
package Package[]
}
model package {
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}
通过这样设计,删除包时,并没有删除用户。
但我无法将多个用户连接到一个包。
我认为您必须从双方明确建立关系模型才能获得 many-to-many relationship。毕竟用户可以订阅很多包,而包可以有很多用户订阅。
model User {
id Int @id @default(autoincrement())
packages Package[] @relation(references: [id])
}
model Package {
id Int @id @default(autoincrement())
user User[] @relation(references: [id])
}
我在设计架构时遇到了一些问题。
案例 1:
model User {
package: @relation(fields: [authorId], references: [id])
packageId: Int
}
model Package {
user User[]
}
一个包可以被数百个用户订阅。所以,我认为这是要走的路。但是,问题是,当需要删除包时,也需要删除用户(admin)。我们不想要
案例 2:
model User {
package Package[]
}
model package {
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}
通过这样设计,删除包时,并没有删除用户。 但我无法将多个用户连接到一个包。
我认为您必须从双方明确建立关系模型才能获得 many-to-many relationship。毕竟用户可以订阅很多包,而包可以有很多用户订阅。
model User {
id Int @id @default(autoincrement())
packages Package[] @relation(references: [id])
}
model Package {
id Int @id @default(autoincrement())
user User[] @relation(references: [id])
}