⚖️
Database Integration

ORM vs Query Builder

Prisma, Sequelize, Knex
💡 ORM, EK, "AUTO-TRANSLATOR" hai — TUM, JavaScript, OBJECTS, mein, SOCHTE, HO, WOH, AUTOMATICALLY, SQL, mein, TRANSLATE, ho, jaata hai. Query, BUILDER, EK, "PHRASEBOOK" jaisa, hai — SQL, jaisa, hi, SOCHNA, PADТA, hai, LEKIN, JavaScript, SYNTAX, mein.

ORM (Object-Relational Mapping) — jaise, Prisma, Sequelize, TypeORM — DATABASE, TABLES, ko, JavaScript, OBJECTS/CLASSES, ki, TARAH, TREAT, karte, HAIN. RAW, SQL, LIKHNE, ki, ZAROORAT, KAAFI, KAM, ho, jaati hai.

Query, BUILDERS — jaise, Knex.js — SQL, QUERIES, ko, CHAINABLE, JavaScript, METHODS, ke, saath, BUILD, karne, DETE, HAIN — RAW, SQL, se, MORE, READABLE, hai, LEKIN, ORM, ki, TULNA, mein, KAAFI, ZYAADA, SQL-LIKE, THINKING, ZAROORI, hai.

// Prisma (ORM):
const users = await prisma.user.findMany({
  where: { age: { gte: 18 } },
  include: { posts: true },
});

// Knex (query builder):
const users = await knex("users")
  .where("age", ">=", 18)
  .select("*");

// Raw SQL:
// SELECT * FROM users WHERE age >= 18
⚖️
ORM, EK, "AUTO-TRANSLATOR" hai — TUM, JavaScript, OBJECTS, mein, SOCHTE, HO, WOH, AUTOMATICALLY, SQL, mein, TRANSLATE, ho, jaata hai. Query, BUILDER, EK, "PHRASEBOOK" jaisa, hai — SQL, jaisa, hi, SOCHNA, PADТA, hai, LEKIN, JavaScript, SYNTAX, mein.
1 / 2
⚡ झट से Recap
  • ORM (Prisma, Sequelize) = database tables, ko, objects/classes, ki, tarah, treat, karta hai
  • Query builder (Knex) = chainable, methods, se, SQL, build, hota hai
  • ORMs, complex, queries, ke, liye, KABHI-KABHI, INEFFICIENT — N+1, problem, ka, RISK
इस page में (2 subtopics)

N+1, PROBLEM, TAB, HOTA, hai, jab, EK, LIST, ke, HAR, ITEM, ke, liye, EK, SEPARATE, QUERY, RUN, ho, jaati, hai (jaise, 100, users, ke, POSTS, FETCH, karne, ke, liye, 100, ALAG, QUERIES) — INSTEAD, EK, HI, JOIN/IN, QUERY, se, SAB, MIL, sakta hai.

// N+1 problem (BAD):
const users = await prisma.user.findMany();
for (const u of users) {
  u.posts = await prisma.post.findMany({ where: { userId: u.id } });   // 100 queries!
}

// Fixed with include (GOOD):
const users = await prisma.user.findMany({ include: { posts: true } });   // 1 query

Prisma, aur, DUSRE, ORMs, RAW, SQL, QUERIES, RUN, karne, ka, ESCAPE, HATCH, DETE, HAIN (jaise, prisma.$queryRaw) — COMPLEX, AGGREGATIONS, YA, PERFORMANCE-CRITICAL, QUERIES, ke, liye, JAHA, ORM, ka, GENERATED, SQL, OPTIMAL, NAHI, hai.

💡Tip: ORM, se, GENERATE, hui, QUERY, ko, EXPLAIN, ANALYZE, se, CHECK, karna, GOOD, PRACTICE, hai — AGAR, SLOW, hai, RAW, SQL, PAR, SWITCH, karne, PAR, VICHAR, karo.