Prisma — это мощный инструмент объектно-реляционного сопоставления (ORM), который упрощает доступ к базе данных и управление ею в современных веб-приложениях. Одним из ее ключевых компонентов является схема, определяющая структуру и взаимоотношения сущностей базы данных. В этой статье мы углубимся в схему Prisma и рассмотрим различные методы определения моделей, связей и настроек на примерах кода.
- Определение моделей.
Схема 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
}
- Добавление полей и ограничений.
Вы можете определять различные поля в своих моделях, а также такие ограничения, как уникальность, значения по умолчанию и т. д. Вот пример добавления поля createAt со значением по умолчанию:
model User {
id Int @id @default(autoincrement())
name String
email String @unique
createdAt DateTime @default(now())
}
- Определение связей.
Схема 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
}
- Перечисления.
Схема Prisma позволяет определять перечисления, которые представляют собой набор предопределенных значений для определенного поля. Вот пример поля статуса с предопределенными значениями:
model Order {
id Int @id @default(autoincrement())
status OrderStatus
}
enum OrderStatus {
CREATED
PROCESSING
COMPLETED
CANCELED
}
- Индексирование.
Вы можете добавлять индексы, чтобы повысить производительность запросов к базе данных. Вот пример добавления индекса в поле электронной почты модели User:
model User {
id Int @id @default(autoincrement())
name String
email String @unique @index()
}
В этой статье мы рассмотрели различные методы определения моделей, отношений и настроек с использованием схемы Prisma. Мы рассмотрели определение моделей, добавление полей и ограничений, определение связей, перечислений и индексацию. Схема Prisma обеспечивает надежный и интуитивно понятный способ моделирования вашей базы данных и использования возможностей Prisma ORM в рабочем процессе серверной разработки.