Я также задавал этот вопрос на форуме Prisma .
Я новичок в Prisma.Таким образом, у меня есть трехсторонние отношения между User
, Event
и Role
, которые я хотел бы определить.Для каждой ассоциации User
и Event
существует Role
для этой ассоциации.Если бы я разработал таблицу базы данных для другого ORM, я бы создал таблицу event_user
с user_id
, event_id
и role_id
в качестве столбцов, чтобы связать их.
Практически, строкаэти 3 столбца должны быть уникальными.Очевидно, было бы хорошо, если бы Prisma смогла защитить эти ограничения, но очевидное решение , которое я вижу , может даже не прийти к Prisma 1.
Мой текущий дизайн состоит из следующего:
type User {
// ...
eventUsers: [EventUser!]!
}
type Event {
// ...
eventUsers: [EventUser!]!
}
type EventUser {
role: Role!
event: Event!
user: User!
}
Этот дизайн сделает рендеринг всех xxWhereUniquexx
непригодным для использования, что определенно затрудняет поддержание отношений.upsert
s, безусловно, будет непригодным для поддержания отношений.
Как можно создать такие отношения в Prisma?
Для некоторого контекста у каждого пользователя будет списокглобальные роли, так что уже существует связь между User
и Role
.Вопрос касается «локальных ролей» для каждого события.