Prisma Schema Design: Relationships, Enums, and Indexes That Scale
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 ...

Source: DEV Community
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