Изучение Prisma Schema: подробное руководство по моделированию базы данных

Prisma — это мощный инструмент объектно-реляционного сопоставления (ORM), который упрощает доступ к базе данных и управление ею в современных веб-приложениях. Одним из ее ключевых компонентов является схема, определяющая структуру и взаимоотношения сущностей базы данных. В этой статье мы углубимся в схему Prisma и рассмотрим различные методы определения моделей, связей и настроек на примерах кода.

  1. Определение моделей.
    Схема Prisma позволяет определять модели, представляющие таблицы базы данных. Вот пример простой модели пользователя:
model User {
  id      Int      @id @default(autoincrement())
  name    String
  email   String   @unique
  posts   Post[]
}
model Post {
  id        Int       @id @default(autoincrement())
  title     String
  content   String
  author    User      @relation(fields: [authorId], references: [id])
  authorId  Int
}
  1. Добавление полей и ограничений.
    Вы можете определять различные поля в своих моделях, а также такие ограничения, как уникальность, значения по умолчанию и т. д. Вот пример добавления поля createAt со значением по умолчанию:
model User {
  id        Int      @id @default(autoincrement())
  name      String
  email     String   @unique
  createdAt DateTime @default(now())
}
  1. Определение связей.
    Схема Prisma поддерживает определение связей между различными моделями. Давайте рассмотрим связь «один ко многим» между пользователями и публикациями, при которой пользователь может иметь несколько публикаций. Вот пример:
model User {
  id      Int      @id @default(autoincrement())
  name    String
  email   String   @unique
  posts   Post[]
}
model Post {
  id        Int       @id @default(autoincrement())
  title     String
  content   String
  author    User      @relation(fields: [authorId], references: [id])
  authorId  Int
}
  1. Перечисления.
    Схема Prisma позволяет определять перечисления, которые представляют собой набор предопределенных значений для определенного поля. Вот пример поля статуса с предопределенными значениями:
model Order {
  id     Int    @id @default(autoincrement())
  status OrderStatus
}
enum OrderStatus {
  CREATED
  PROCESSING
  COMPLETED
  CANCELED
}
  1. Индексирование.
    Вы можете добавлять индексы, чтобы повысить производительность запросов к базе данных. Вот пример добавления индекса в поле электронной почты модели User:
model User {
  id      Int      @id @default(autoincrement())
  name    String
  email   String   @unique @index()
}

В этой статье мы рассмотрели различные методы определения моделей, отношений и настроек с использованием схемы Prisma. Мы рассмотрели определение моделей, добавление полей и ограничений, определение связей, перечислений и индексацию. Схема Prisma обеспечивает надежный и интуитивно понятный способ моделирования вашей базы данных и использования возможностей Prisma ORM в рабочем процессе серверной разработки.