database-design

database-design is a cursor rule for coding agents from adonai-labs/agent-runway. It costs 0 tokens per session (1,615 once invoked), scanned A, original, MIT.

A set of guidelines for designing and maintaining databases. It covers relational table structure, indexes, constraints, NoSQL approaches, queries, migrations, security, and backups.

In plain words
What is it for?
Use it when creating schemas, choosing indexes, writing or reviewing queries, planning migrations, or deciding how to protect and back up data.
Why use it?
It provides consistent rules for avoiding duplicated data, slow queries, unsafe changes, and weak recovery plans.

Cursor rule

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/adonai-labs/agent-runway/database-design
Clone the repo
git clone --depth 1 https://github.com/adonai-labs/agent-runway

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for database-design

README.md
[![agentmods](https://agentmods.dev/badge/rules/adonai-labs/agent-runway/database-design.svg)](https://agentmods.dev/rules/adonai-labs/agent-runway/database-design)
Your own site
<a href="https://agentmods.dev/rules/adonai-labs/agent-runway/database-design"><img src="https://agentmods.dev/badge/rules/adonai-labs/agent-runway/database-design.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 1,615 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.01615
Opus 5 $0.00000 $0.00807
Sonnet 5 $0.00000 $0.00323
Haiku 4.5 $0.00000 $0.00161

Measured 4d ago against content hash 608388eec233, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

database-design scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

src/core/rules/database-design.mdc · 220 lines

How it starts

The opening of the file, as written. The whole thing — 220 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Database Design Guidelines

Directives only. No full scripts, schemas, or pipelines.


Relational Design Directives

Normalisation

  • Normalise to 3NF by default; remove transitive dependencies and repeating groups
  • Keep each table focused on a single entity; use junction tables for many-to-many
  • Denormalise only when: read-heavy workloads justify write cost, joins are proven bottlenecks, or a dominant query pattern is stable
  • Document denormalisation decisions; keep them reversible

Schema Structure

  • Use UUIDs or surrogate keys when natural keys are unstable or composite
  • Prefer TIMESTAMP WITH TIME ZONE for timestamps
  • Add created_at and updated_at on all mutable tables
  • Use ON DELETE CASCADE / ON DELETE SET NULL only when the business rule is explicit

Indexing Strategy

Index Types and When to Use

  • Primary key — Automatic; unique per row; prefer clustered where supported
  • Single-column — Unique lookups (e.g. email), foreign keys, frequently filtered columns
  • Composite — Multi-column filters and sorts; order by selectivity (most selective first)
  • Partial — Subset of rows (e.g. WHERE is_active = true); reduces size and maintenance
  • Text search — GIN/GiST for full-text; B-tree for prefix/suffix

Indexing Rules

  • Index foreign keys used in joins
  • Avoid indexing low-cardinality columns alone
  • Avoid over-indexing write-heavy tables
  • Run ANALYZE after bulk loads; schedule VACUUM / REINDEX where needed
  • Monitor usage; drop unused indexes
CREATE INDEX idx_users_active_created ON users(is_active, created_at);
CREATE INDEX idx_users_email ON users(email) WHERE is_active = true;

Data Integrity

Constraints

  • Use NOT NULL for required fields
  • Use CHECK for domain rules (e.g. status IN ('draft', 'published'))
  • Use UNIQUE for natural keys
  • Add cross-column checks where rules span columns (e.g. published_at required when status = 'published')

Foreign Keys

Read the full file on GitHub · 220 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 220 lines · 0 tokens per session scan A 608388eec233

Subscribe to this mod's changes

database-design is a cursor rule published in the GitHub repository adonai-labs/agent-runway (2 stars, last pushed 14d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,615 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.