PrismaPostgresAdvanced
মতভাবে relation — explicit N:M, self-relation
bridge table নিজের হাতে ও নিজের সাথে relation।
4টি অংশবাংলা ভাষায়
explicit N:M — OrderItem bridgeprisma
prisma
model Order {
id Int @id @default(autoincrement())
cells OrderItem[]
}
model Product {
id Int @id @default(autoincrement())
lines OrderItem[]
}
model OrderItem {
order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)
orderId Int
product Product @relation(fields: [productId], references: [id])
productId Int
qty Int
price Decimal @db.Decimal(10, 2)
@@id([orderId, productId])
}Implicit N:M-Prisma bridge-এ অতিরিক্ত column (qty!) রাখা যায় না — এজন্য bridge model সাহায্য।
self-relation — employee/managerprisma
prisma
model Employee {
id Int @id @default(autoincrement())
name String
manager Employee? @relation("ReportsTo", fields: [managerId], references: [id])
managerId Int?
reports Employee[] @relation("ReportsTo")
}@relation name
একই model-এর মধ্যে ২+ relation থাকলে @relation('Name')-এ আলাদা নাম বাধ্যতামূলক।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।