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.
01 Examples
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.
02 Enable it
Setup
Install the package, register its plugin factory, then enable the rule.
Install the package
pnpm add -D @scruple/relational-databasesRegister 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