Back to articles
Prisma Schema Design: Relationships, Enums, and Indexes That Scale

Prisma Schema Design: Relationships, Enums, and Indexes That Scale

via Dev.toAtlas Whoff

Schema Design Is Architecture Your Prisma schema isn't just ORM config—it's your data architecture. Bad decisions here compound as your app grows. Core Relationship Patterns One-to-Many model User { id String @id @default(cuid()) email String @unique posts Post[] // one user has many posts createdAt DateTime @default(now()) } model Post { id String @id @default(cuid()) title String userId String user User @relation(fields: [userId], references: [id], onDelete: Cascade) createdAt DateTime @default(now()) @@index([userId]) // always index foreign keys } Many-to-Many (implicit) model Post { id String @id @default(cuid()) tags Tag[] } model Tag { id String @id @default(cuid()) name String @unique posts Post[] } // Prisma creates a join table automatically Many-to-Many (explicit — when you need metadata) model User { id String @id @default(cuid()) memberships Membership[] } model Organization { id String @id @default(cuid()) memberships Membership[] } model Membership { id String @id @defau

Continue reading on Dev.to

Opens in a new tab

Read Full Article
2 views

Related Articles