intermediate
Relations
Моделируйте one-to-one, one-to-many, many-to-many и explicit join tables с predictable loading и referential behavior.
Relations в Prisma описывают связи моделей; внешние ключи и join-таблицы задают форму БД. Вместе: владение, кардинальность, удаление и стратегия загрузки.
model OrderItem {
orderId String
order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)
}
На интервью: one-to-one, one-to-many, many-to-many, явные join-модели, referential actions, случайный N+1 с `include`.
Типовые ошибки: implicit many-to-many при атрибутах связи; cascade удаляет больше ожидаемого; загрузка всего графа по умолчанию.
Компромисс — эргономичный синтаксис связей против явного моделирования join.
Чеклист:
- Явные join, если у связи есть данные.
- Осознанные referential actions.
- Стратегия загрузки на endpoint.
- Индексы на FK в фильтрах.