Skip to content
← All rules
Relational DatabasesDatabase performance

relational-databases/prefer-database-join

Use a join, relation include, aggregation, subquery, or filtered query when it can replace combining multiple relational query results in memory.

sqljoinsqueries
TypeScript
const users = await db.user.findMany(); const teams = await db.team.findMany(); return users.map(u => ({ ...u, team: teams.find(t => t.id === u.teamId) }));
Finding

Prefer joining related query results in the database.

Setup

Install the package, register its plugin factory, then enable the rule.

Install the package

pnpm add -D @scruple/relational-databases

Register the plugin

In scruple.config.ts, register the factory under the relational-databases namespace used by the rule ID.

import { relationalDatabases } from "@scruple/relational-databases";

plugins: {
  "relational-databases": relationalDatabases(),
},

Enable the rule

"relational-databases/prefer-database-join": "warn"
Package
@scruple/relational-databases
Default threshold
0.85
Minimum confidence
0.7

Released under the MIT License.