Design a correct relational schema: normalize to 3NF, denormalize only with measured evidence and a named consistency cost, push constraints (PK/FK/UNIQUE/CHECK/NOT NULL) into the database, and choose precise data types.
Scanned 9/23/2026
npx -y skills add mcorbett51090/RavenClaude --skill relational-schema-design --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Relational Schema Design?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mcorbett51090-relational-schema-design)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: relational-schema-design
description: "Design a correct relational schema: normalize to 3NF, denormalize only with measured evidence and a named consistency cost, push constraints (PK/FK/UNIQUE/CHECK/NOT NULL) into the database, and choose precise data types."
---
# Relational Schema Design
## Normalize first
3NF by default: each fact once, relationships via keys. Most 'we must denormalize' instincts are premature.
## Denormalize deliberately
Only with a measured read benefit AND the write/consistency cost named — often a **materialized view** or **covering index** is better than redundant columns.
## Constraints in the DB
PK on every table, FK for every relationship, NOT NULL/UNIQUE/CHECK to make illegal states unrepresentable. The app is not a trustworthy enforcer.
## Types
Precise numeric/temporal/text; `uuid`/`enum`/`jsonb` where they fit. `text` for everything + naive timestamps are smells.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!