Prisma2: как разработать схему, которая имеет отношение к модели типа массива?
Я столкнулся с некоторыми проблемами при разработке схемы.
Случай 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?
}
при таком проектировании при удалении пакета пользователь не удаляется. но я не могу подключить к пакету несколько пользователей.
1 ответ
Решение
Я думаю, что вам нужно явно смоделировать отношения с обеих сторон, чтобы получить отношение " многие ко многим". В конце концов, пользователи могут подписаться на множество пакетов, а на пакеты может быть подписано много пользователей.
model User {
id Int @id @default(autoincrement())
packages Package[] @relation(references: [id])
}
model Package {
id Int @id @default(autoincrement())
user User[] @relation(references: [id])
}