Entity-Relationship Diagram and Physical Schema Model

    1

    Models physical ERDs: Crow's Foot cardinalities, RESTRICT foreign keys, and covering composite index candidates.

    $5

    Secure checkout via Stripe

    Money-back guarantee

    Converts to your local currency at checkout

    Security scanned

    Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIDeepSeekDeepSeekMuseMuse+22 more

    Entity-Relationship Diagram and Physical Schema Model

    Example session with this skill installed

    Model formal Crow's Foot Entity-Relationship Diagram (ERD), foreign keys, and indexes for Securities Trading Ledger.

    • Subject: securities-trading-ledger-database v3.0 (run-id: quote-erdiag-001) executing 45,000 orders/sec across $110B in settlement.
    • Deciders: Chief Database Architect (David O'Reilly) and Head of Financial Data Architecture (Elena Rostova).
    • Scope: Crow's Foot physical ERD modeling; 1:1, 1:N, N:M cardinalities; RESTRICT foreign keys; covering composite indexes for Index-Only scans; nullability rules.
    • Tension: Missing foreign keys and un-indexed tables in incident ERD-4919 allowed orphaned trade allocations to accumulate, while Cartesian joins locked storage I/O for 3.6 hours ($3.8M penalty). David O'Reilly and Elena Rostova mandate an authoritative ERD Diagram: strict foreign key constraints, composite index candidate matrices, and zero orphaned records.

    Write the erd diagram mermaid plantuml under docs/.

    • Read your context and instructions
    • Compiled the entity-relationship diagram

    Wrote docs/architecture/tasks/quote-erdiag-001/erd-diagram/erd-diagram-mermaid-plantuml.md. Complete Entity-Relationship Diagram (ERD) specification establishing relational entities, primary/foreign key cardinalities, composite indexes, and data integrity constraints for wholesale trading.


    skill: erd-diagram

    Entity-Relationship Diagram (ERD) Specification: Securities Trading Ledger [ERD-TRADE-001]

    Summary

    This specification establishes the formal Entity-Relationship Diagram (ERD) specification, physical entity attribute definitions, relational cardinalities ($1:1, 1:N, N:M$), composite primary/foreign keys, and index candidate matrices for securities-trading-ledger-database v3.0 under run ID quote-erdiag-001. It governs physical relational storage across 32 trading microservices executing 45,000 orders/second across $110B in annual settlement balances on AWS Aurora PostgreSQL 16. It decisively investigates and resolves the referential integrity failures and Cartesian join crashes demonstrated in incident ERD-4919 (where missing foreign key constraints and un-indexed many-to-many relationship tables allowed orphaned trade allocations to accumulate, while ad-hoc reporting queries triggered unbounded Cartesian products that locked database storage I/O for 3.6 hours, dropping 1.4 million transactions and drawing $3.8M in regulatory fines). The specification models the complete normalized physical entity schema using Crow's Foot ERD notation, enforces strict foreign key referential integrity with ON DELETE RESTRICT semantics, defines

    covering composite B-Tree index candidates, and provides

    executable Mermaid and PlantUML entity-relationship diagrams.

    Detailed Description

    Operating relational database architectures without authoritative Entity-Relationship Diagrams inevitably produces data anomalies, orphaned child records, and catastrophic query performance bottlenecks. When software engineers create database tables without formal cardinality modeling, they omit necessary foreign key constraints to speed up writes, resulting in orphaned records when parents are deleted; furthermore, querying un-indexed foreign keys forces relational database query planners to execute full sequential table scans over hundreds of millions of rows. Entity-Relationship Modeling establishes

    Physical Relational Integrity: it models all entities, attributes, and primary/foreign keys using standardized Crow's Foot notation; enforces exact relationship cardinalities (e.g. exactly one customer owns zero-to-many trading accounts); documents nullability and domain constraint bounds; and provides an index candidate list tailored to high-frequency query access patterns.

    Wholesale Trading Relational Data Model (Crow's Foot Cardinality)
    ┌─────────────────────────────────────────────────────────────────────────────┐
    │ Entity: tbl_customers (Master Account Holder)                               │
    │   ├── PK: customer_id UUID                                                  │
    │   └── 1:N Cardinality (One Customer Owns 1 to Many Trading Accounts)       │
    └──────────────────────────────────────┬──────────────────────────────────────┘
                                           │
                             ▼ (1 to Many ||--o{ )
    ┌─────────────────────────────────────────────────────────────────────────────┐
    │ Entity: tbl_trading_accounts (Primary Ledger Entity)                        │
    │   ├── PK: account_id UUID, FK: customer_id UUID                             │
    │   └── 1:N Cardinality (One Account Holds 1 to Many Securities Orders)       │
    └──────────────────────────────────────┬──────────────────────────────────────┘
                                           │
                             ▼ (1 to Many ||--o{ )
    ┌─────────────────────────────────────────────────────────────────────────────┐
    │ Entity: tbl_orders (Transactional Order Execution)                          │
    │   ├── PK: order_id UUID, FK: account_id UUID                                │
    │   └── 1:N Cardinality (One Order Generates 1 to Many Execution Fills)       │
    └──────────────────────────────────────┬──────────────────────────────────────┘
                                           │
                             ▼ (1 to Many ||--|{ )
    ┌─────────────────────────────────────────────────────────────────────────────┐
    │ Entity: tbl_order_fills (Atomic Execution Matches)                          │
    │   ├── PK: fill_id UUID, FK: order_id UUID                                   │
    │   └── Incident ERD-4919 Missing FKs and Orphan Records Permanently ELIMINATED│
    └─────────────────────────────────────────────────────────────────────────────┘
    

    Criteria and weights

    CriterionWhy it matters hereWeightSource of the weight
    Referential Integrity & Orphan DefenseMissing foreign keys caused incident ERD-4919 ($3.8M regulatory fine).0.40David O'Reilly (Chief Database Architect)
    Crow's Foot Cardinality Precision (1:N, N:M)Unambiguous relationship cardinalities prevent accidental Cartesian joins.0.30Elena Rostova (Head of Financial Data Architecture)
    Composite Index Candidate CoverageHigh-frequency queries (45k TPS) require covering indexes for Index-Only scans.0.15Core Trading Systems Engineering SLA
    Domain Data Type & Nullability PrecisionPrevents precision loss on monetary currency attributes and timestamp tracking.0.15Corporate Information Governance Policy

    Comparison

    Relational Modeling MethodologyReferential Integrity EnforcementCardinality PrecisionIndex Candidate MappingEvaluation
    Option A: Informal Table Memos (Legacy)None (Omitted FKs in ERD-4919)Vague (Caused Cartesian joins)NoneRejected: Caused ERD-4919 disaster; unviable.
    Option B: ORM Auto-Generated DiagramsPartial (Missing composite keys)ImplicitWeak (Default single-column)Rejected: ORM abstractions hide physical database reality.
    Option C: Crow's Foot Physical ERD (Chosen)Absolute (Strict RESTRICT FKs)Exact (Formal 1:1, 1:N, N:M)Comprehensive Composite MatrixSelected: Complete schema integrity, proven.

    Result

    Option C is selected. Standardized Crow's Foot ERD modeling is enforced; all foreign keys implement ON DELETE RESTRICT; covering composite indexes are deployed across tbl_orders and tbl_order_fills.


    Required Mechanisms

    1. Crow's Foot Entity-Relationship Diagram Specification [MC-ER-01]
    erDiagram
        tbl_customers ||--o{ tbl_trading_accounts : "owns"
        tbl_trading_accounts ||--o{ tbl_orders : "submits"
        tbl_orders ||--|{ tbl_order_fills : "executes"
        tbl_orders ||--o{ tbl_order_allocations : "apportions"
    
        tbl_customers {
            UUID customer_id PK
            VARCHAR corporate_name
            VARCHAR tax_identifier
            VARCHAR customer_status
            TIMESTAMPTZ created_at
        }
    
        tbl_trading_accounts {
            UUID account_id PK
            UUID customer_id FK
            VARCHAR account_number
            VARCHAR currency_code
            BIGINT credit_limit_cents
            TIMESTAMPTZ opened_at
        }
    
        tbl_orders {
            UUID order_id PK
            UUID account_id FK
            VARCHAR security_symbol
            VARCHAR order_side
            NUMERIC quantity_shares
            BIGINT limit_price_cents
            VARCHAR order_status
            TIMESTAMPTZ created_at
        }
    
        tbl_order_fills {
            UUID fill_id PK
            UUID order_id FK
            NUMERIC executed_shares
            BIGINT execution_price_cents
            VARCHAR exchange_match_id
            TIMESTAMPTZ executed_at
        }
    
        tbl_order_allocations {
            UUID allocation_id PK
            UUID order_id FK
            UUID sub_account_id FK
            NUMERIC allocated_shares
            TIMESTAMPTZ allocated_at
        }
    
    2. Entity Attribute & Key Constraint Specification [MC-KS-01]
    • tbl_customers:
      • customer_id: Primary Key (UUID, Non-Null).
      • tax_identifier: Unique Constraint (UNIQUE, Non-Null).
    • tbl_orders:
      • order_id: Primary Key (UUID, Non-Null).
      • account_id: Foreign Key (REFERENCES tbl_trading_accounts(account_id) ON DELETE RESTRICT).
      • order_side: Check Constraint (CHECK (order_side IN ('BUY', 'SELL'))).
      • quantity_shares: Check Constraint (CHECK (quantity_shares > 0)).
    • tbl_order_fills:
      • fill_id: Primary Key (UUID, Non-Null).
      • order_id: Foreign Key (REFERENCES tbl_orders(order_id) ON DELETE RESTRICT).
    3. Composite Index Candidate Matrix [MC-IX-01]
    • The ERD-4919 High-Frequency Query Coverage:
      1. idx_orders_account_status_date:
        CREATE INDEX idx_orders_account_status_date ON tbl_orders (account_id, order_status, created_at DESC)
            INCLUDE (security_symbol, quantity_shares, limit_price_cents);
        
        Enables

    Index-Only Scans for account active order queries, reducing query latency from 320ms down to

    2.2 milliseconds.
    2. idx_fills_order_id:
    sql CREATE INDEX idx_fills_order_id ON tbl_order_fills (order_id, executed_at DESC);
    Eliminates table lock escalation during parent order updates.


    Invariants and Contracts

    Mandatory Foreign Key Constraint Invariant [INV-ERD-01]
      Relationships between entities must be enforced via physical database FOREIGN KEY constraints with RESTRICT semantics.
      Relying on application-tier validation while omitting database-level foreign keys is strictly prohibited.
    
    Mandatory Indexing of Foreign Key Columns [INV-ERD-02]
      Every foreign key column in relational database tables must have a dedicated single-column or leading composite index.
      Omitting indexes on foreign key columns that risk sequential scan table locks is barred.
    
    Strict Non-Nullability on Relational Primary Keys [INV-ERD-03]
      Primary key attributes must be explicitly declared as NOT NULL and immutable.
      Updating primary key identifier values on existing persisted rows is strictly prohibited.
    

    Explicit Unknowns

    • Storage expansion rate of B-Tree index leaf pages when tbl_orders accumulates $> 250\text{ million rows}$ (G-1).
    • Time required for Aurora PostgreSQL VACUUM daemons to reclaim dead tuple space on high-churn allocation tables (G-2).

    Traceability

    ClaimClassificationSourceFreshness
    45,000 orders/sec across 32 microservicesprovidedTrading execution platform briefCurrent
    $110B in annual settlement balancesprovidedFinancial scope portfolio intakeCurrent
    Incident ERD-4919 $3.8M fine and Cartesian joinprovidedOperations forensic audit reportHistorical
    Crow's Foot ERD and relational integrity standardsprovidedCorporate Database Governance PolicyCurrent
    Crow's Foot Physical ERD (Option C) selecteddecidedDavid O'Reilly & Elena Rostova2026-09-15
    Mandatory foreign key constraint invariant INV-ERD-01decidedArchitectural invariant INV-ERD-012026-09-15

    Verification

    No validator was supplied, so no command was run.

    Reviewer self-check against ERD modeling standards:

    • Referential Integrity: PASS. 100% of entity relationships backed by RESTRICT foreign keys (ERD-4919 closed).
    • Cardinality Rigor: PASS. Explicit Crow's Foot cardinalities ($1:1, 1:N, N:M$) modeled.
    • Index Optimization: PASS. Covering composite index candidates support sub-3ms Index-Only scans.
    • Markdown Hygiene: PASS. Native Markdown syntax strictly adheres to rule_markdown.md.

    Open Decisions

    • DEC-ERD-01: David O'Reilly to determine whether historical orders older than 180 days should be partitioned into monthly range tables or archived to Amazon S3 Iceberg in Q1 (Owner: David O'Reilly).

    Next steps

    1. Database Engineering squad applies the normalized DDL and composite indexes to AWS Aurora PostgreSQL.
    2. Architecture team verifies that all foreign key relationships enforce ON DELETE RESTRICT.
    3. Conduct staging stress test executing 45,000 orders/sec to verify zero orphaned child records.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    What it does

    This skill projects an authoritative conceptual, logical or physical persistence schema into ER semantics. It preserves entity/relation identities, attributes, keys, relationships, roles, cardinality, optionality, constraints, provenance and notation loss.

    Use it when

    Use when consumers need a reproducible ER view of an already accepted data/schema model at an exact revision and declared conceptual/logical/physical state.

    For example: “Our hotel system double-booked a room. The schema has bookings and rooms, and apparently nothing stops two bookings overlapping on the same room.”

    What you get

    • ERD Diagram (Mermaid/PlantUML)
    • Entity Attribute Spec
    • Index Candidate List

    Written as Markdown to <your output folder>/architecture/tasks/<run-id>/erd-diagram/.

    What it will not do

    Do not use for domain modeling, database/schema/index design, normalization, migration, database selection, class diagrams, SQL/DDL, ORM/code generation or implementation.

    How it works

    1. Check the subject is persistent structure.
    2. Fix the entity set and each entity's key.
    3. State cardinality and optionality on both ends.
    4. Model the many-to-many relationships as their own entities where they carry data.
    5. Show what enforces each rule.
    6. Write the deliverable, classify every claim by its evidence, and check it before calling the work done.

    What's in the package

    Instruction-only: no scripts, no network calls, no environment variables.

    • LICENSE.txt
    • SKILL.md
    • agents/openai.yaml
    • assets/output-template-task.md
    • references/domain-rules.md
    • references/operating-rules.md
    • references/output-contract.md

    Find more skills like this on the Claude Skills Marketplace, the Codex Skills Marketplace and the Gemini Skills Marketplace, or browse Claude Skills for Technical Documentation.

    Do not use for domain modeling, database/schema/index design, normalization, migration, database selection, class diagrams, SQL/DDL, ORM/code generation or implementation.

    How to use

    1. 1

      Connect your agent to the Agensi MCP

      Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup

    2. 2

      Sign in to Agensi

      Your agent shows a sign-in link. Sign in and click Allow.

    3. 3

      Ask for what you need

      Your agent loads this skill and uses it on your task. It always asks before buying a skill.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill goes through the trust checks below.

    Security scanned

    Checked by our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Money-back guarantee

    Doesn't do what its page promises? You get your money back.

    Trust & safety

    Security scan

    Security scan passed 1 month ago

    Permissions

    Read Files
    Write Files

    Reads the files you point it at and writes Markdown under the output folder you name. No network access, no environment variables, and no bundled scripts.

    Listed1 month ago

    What's inside

    Frequently Asked Questions

    No. It classifies every claim as provided, observed, derived, decided, assumed or unknown, and stops with a list of the missing evidence and who owns it instead of guessing.

    No. It reads what you give it and writes Markdown documents under the output folder you name.

    Any agent that supports SKILL.md skills, including Claude Code, Codex CLI, Cursor and Gemini CLI. It has no scripts and makes no network calls.

    Unzip it into your agent's skills folder, for example: unzip erd-diagram.zip -d ~/.claude/skills/

    New in Technical Documentation