Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • PrismaPostgres Documentation40টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Prisma Intro
  • Prisma vs Raw SQL
  • Setup & Install
  • Schema Basics
  • Models
  • Relations
  • Migrations
  • Prisma Client
  • Create & Upsert
  • Read Queries
  • Update & Delete
  • Query Filters
  • Sort & Pagination
  • Select & Include
  • Nested Writes
  • Transactions
  • Aggregation
  • JSON Fields
  • Raw SQL
  • TechShop Schema
  • TechShop Seed
  • Relations Advanced
  • Env Config
  • Global Client
  • Next.js + Prisma
  • Express API
  • Error Handling
  • Performance
  • Connection Pool
  • Prisma Studio
  • Deploy Migrations
  • TechShop Indexes
  • TechShop Cart
  • TechShop Stats API
  • Schema Evolution
  • Debugging
  • Common Mistakes
  • Best Practices
  • Interview Questions
  • Recap & Next
  1. Docs
  2. PrismaPostgres
  3. মতভাবে relation — explicit N:M, self-relation
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 করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরSeed — ডিজাইন ডেটা দিয়ে beginপরেরDATABASE_URL ও env ব্যবস্থাপনা
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com