Menu

Topic 5 of 8

Entity Relationship Modeling

Learn Entity Relationship Modeling for free with explanations, exercises, and a quick test (for Data Architect).

Published: January 18, 2026 | Updated: January 18, 2026

Why this matters

Entity-Relationship (ER) modeling turns messy business language into a clear, consistent data blueprint. As a Data Architect, you will:

  • Align stakeholders on what data means (Customer, Order, Policy, Ride).
  • Define boundaries: what belongs to which entity and where relationships go.
  • Uncover constraints early (one customer can have many orders; an order must have at least one line item).
  • Enable scalable logical/physical designs and downstream analytics.
Real tasks you’ll face
  • Facilitate a workshop to define entities, attributes, and relationships for a new product.
  • Refactor an ambiguous model (e.g., “User” vs “Account”) to reduce duplication.
  • Design an associative entity for M:N relationships (e.g., Products in Promotions).
  • Decide on surrogate vs natural keys for consistency and performance.

Concept explained simply

An ER model describes:

  • Entities: Things about which you store data (Customer, Invoice, Vehicle).
  • Attributes: Properties of entities (Customer.email).
  • Relationships: How entities connect (Customer places Order).
  • Cardinality: How many on each side (1:1, 1:M, M:N).
  • Optionality: Whether the relationship is required (must/may).
  • Keys: Attributes that uniquely identify a record (PK) and link entities (FK).

Mental model

Think of an ER model like a city map:

  • Entities are buildings (types of things).
  • Attributes are rooms (details inside each building).
  • Relationships are roads that connect buildings (with speed limits = constraints).
  • Keys are street addresses (unique identifiers).
Cardinality and optionality cheat sheet
  • 1:1 — Rare; use when a subset of attributes applies only sometimes (optional extension).
  • 1:M — Most common; parent has many children. Child holds FK to parent.
  • M:N — Use an associative entity (bridge table) to store pairs and attributes of the relationship.
  • Optionality — If the child cannot exist without the parent, the FK is mandatory.
Choosing keys
  • Natural key: Comes from the business (VIN, ISBN). Pros: meaningful. Cons: may change or be messy.
  • Surrogate key: Artificial (integer/UUID). Pros: stable, simple. Cons: add an extra column.
  • Practical rule: Prefer surrogate PKs for consistency; also store natural keys with uniqueness constraints when needed.

Step-by-step recipe

  1. List the nouns from requirements; cluster into candidate entities.
  2. For each entity, define a clear purpose and key attributes; pick a primary key.
  3. Connect entities with relationships; state cardinality and optionality in words.
  4. Resolve any M:N with an associative entity and its attributes.
  5. Check for multivalued or composite attributes; normalize to 3NF where reasonable.
  6. Validate with stakeholders using examples and edge cases.

Worked examples

Example 1 — Retail orders

Goal: Capture customer orders for analysis and fulfillment.

  • Entities: Customer(CustomerID PK, Email, Name), Order(OrderID PK, OrderDate, Status), OrderLine(OrderLineID PK, Quantity, UnitPrice), Product(ProductID PK, SKU, Name), Payment(PaymentID PK, Method, Amount).
  • Relationships:
    • Customer 1:M Order (Order.CustomerID mandatory).
    • Order 1:M OrderLine.
    • OrderLine M:1 Product.
    • Order 1:M Payment (optional if unpaid).
Why this shape?

Line items belong to orders; products are reused across many lines. Payments are separate because there can be multiple attempts or partial payments.

Example 2 — Healthcare visits

Goal: Track patient visits with providers.

  • Entities: Patient(PatientID, MRN), Visit(VisitID, VisitDate, Type), Provider(ProviderID, NPI), Diagnosis(DiagnosisID, Code), VisitDiagnosis(VisitDiagnosisID, Rank).
  • Relationships:
    • Patient 1:M Visit (mandatory FK in Visit).
    • Visit M:1 Provider (optional if unassigned pre-triage).
    • Visit M:N Diagnosis via VisitDiagnosis; Rank orders primary vs secondary diagnosis.
Why this shape?

Multiple diagnoses per visit require an associative entity to store extra attributes (rank).

Example 3 — SaaS subscriptions

Goal: Manage subscriptions and invoices.

  • Entities: Account(AccountID, Name), User(UserID, Email), Subscription(SubscriptionID, Plan, StartDate, EndDate), Invoice(InvoiceID, Total, Status), InvoiceLine(InvoiceLineID, Quantity, UnitPrice), Product(ProductID, Code, Name), AccountUser(AccountUserID, Role).
  • Relationships:
    • Account 1:M Subscription.
    • Account M:N User via AccountUser (Role attribute).
    • Subscription 1:M Invoice; Invoice 1:M InvoiceLine; InvoiceLine M:1 Product.
Why this shape?

Users can belong to many accounts; role is a relationship attribute, so we keep it in the associative entity.

Exercises you’ll complete

Do the exercises below. Then compare with the solutions and run the checklist.

Exercise 1 — Library lending

Design an ER model for a public library that lends physical books.

  • Capture members, books, individual copies, loans, and authors.
  • Support multiple authors per book.
  • Ensure a copy can be on at most one active loan.
  • Identify keys and cardinalities.
Open instructions (same as in the Exercises panel)

See the Exercises panel for the full prompt, hints, and solution.

Self-check checklist

  • Did you separate Book from Copy?
  • Did you resolve Book–Author M:N with an associative entity?
  • Is Loan tied to Copy and Member with correct optionality?
  • Do all entities have clear primary keys?

Exercise 2 — Ride-hailing

Design an ER model for a ride-hailing app.

  • Capture riders, drivers, vehicles, rides, and payments.
  • Represent multiple stops and flexible payments (partial, split).
  • Identify keys and cardinalities.
Open instructions (same as in the Exercises panel)

See the Exercises panel for the full prompt, hints, and solution.

Self-check checklist

  • Does Ride link Rider and Driver with 1:M to stops?
  • Did you handle split/partial payments with a separate entity?
  • Does Vehicle belong to Driver or a Fleet as your scenario requires?

Common mistakes and how to self-check

  • Bundling entities: Mixing different concepts (User+Account). Fix by writing a one-sentence purpose for each entity.
  • Skipping associative entities: Leaving M:N directly. Fix by creating a bridge with its own attributes.
  • Weak keys: Using non-unique or mutable natural keys as PK. Prefer surrogate PK; keep natural key unique separately.
  • Wrong optionality: Making required relationships optional (e.g., Order without Customer). Validate with edge cases.
  • Leaking history into the entity: Stuffing multiple values into one attribute. Normalize or create time-variant structures if needed.
Quick self-audit
  • For every relationship, can you state “One X has how many Y, and must/may?”
  • For every entity, can you write: “The purpose of X is … and it is uniquely identified by …”?
  • Do you have any M:N without an associative entity?
  • Are there attributes that obviously belong to a separate entity (repeating groups)?

Who this is for

  • Aspiring and practicing Data Architects designing conceptual and logical models.
  • Data Engineers who need clean inputs for pipelines.
  • Analysts who want trustworthy dimensions and facts.

Prerequisites

  • Basic database concepts (tables, keys, constraints).
  • Ability to read simple SQL.
  • Familiarity with the business domain you’re modeling (you can ask clarifying questions).

Learning path

  1. Grasp ER basics: entities, relationships, keys, cardinality, optionality.
  2. Practice normalization to 3NF on your entities.
  3. Model 3–5 small domains end-to-end (like the worked examples).
  4. Introduce history where needed (valid-from/to on relationships or attributes).
  5. Translate to logical and then physical models with naming standards.

Practical projects

  • Design a small retail ER model and load synthetic data to validate constraints.
  • Model a university (students, courses, enrollments) and run sample queries.
  • Create a subscription billing model with trials, upgrades, and proration.

Next steps

  • Complete the two exercises and compare with solutions.
  • Take the Quick Test to confirm understanding.
  • Extend one worked example with a new requirement (e.g., refunds, returns, time tracking) and update the model.

Mini challenge

In 15 minutes, sketch a conceptual ER model for a food delivery platform with restaurants, menus, orders, couriers, and tips. List entities, keys, and relationships in bullet points. Then identify one likely M:N and turn it into an associative entity with at least one attribute.

Quick Test (progress note)

This test is available to everyone. Only logged-in users have their progress saved.

Practice Exercises

2 exercises to complete

Instructions

Design an ER model for a public library that lends physical books.

  • Entities to consider: Member, Book, Copy (each physical item), Loan, Author, and a bridge for book authorship.
  • Requirements: A book can have multiple authors. A copy can be on at most one active loan. Track who processed the loan (optional).
  • Deliverable: List entities with key attributes and describe relationships with cardinality and optionality.
Expected Output
Entities with PKs; relationships described in 1:M, M:N form; associative entity for Book-Author; rule for one active loan per Copy articulated.

Entity Relationship Modeling — Quick Test

Test your knowledge with 10 questions. Pass with 70% or higher.

10 questions70% to pass

Have questions about Entity Relationship Modeling?

AI Assistant

Ask questions about this tool