The Life Starter
0 of 6 complete0%
Course Library · Lesson 3 of 6
Digital · Guided lesson

Model relationships between tables

About 28 minutes · 6 reading + 22 practice and checks
Time includes reading, practice, and questions. Extra videos or further study are optional.
See this course’s project requirements

A four-table equipment-loan schema with stable keys, relationship definitions, integrity rules and checked edge cases.

Keep your working files in your own notebook or software. Save a private description, checklist, and work link in My Proof.

What to include

  • Four entity definitions and base row counts.
  • Stable primary keys and foreign keys.
  • Relationship sketch and trace.
  • Dependency/redundancy example.
  • Integrity rules, three edge cases and limits.

Review and revise

Use these criteria to check your work and choose what to improve.

  • Objects and events remain distinct.
  • Keys reconstruct every required relationship.
  • Facts are stored with their proper owner.
  • Constraints and case decisions match the stated policy.
Open the full course project
Want more background?
Before you begin

The idea in everyday life

Design a small fictional equipment-loan system before writing retrieval queries.

The idea

A foreign key stores the identity of a related row, not a second copy of all its facts.

Follow along

Model relationships between tables — guided practice

Describe one-to-many links and locate foreign keys.

Work in design.md or on paper; no database installation is required. Fictional equipment library: types T1=Camera, replacement units 200; T2=Tripod, replacement units 40. Items I1 and I2 have type T1; I3 has type T2. Borrowers B1=River and B2=Sky are aliases. Loans: L1, I1, B1, returned=1; L2, I1, B2, returned=0; L3, I3, B1, returned=0. Rule: returned is 0 or 1; each item may have at most one active (returned=0) loan. Keep the base rows available throughout all six lessons.

  1. 1. Link types to items

    Write Type 1 -> many Items; place type_id inside Item.

    You should see: I1 and I2 both reference T1.

    Many items can share one type.

  2. 2. Link items to loans

    Write Item 1 -> many Loans over time; place item_id inside Loan.

    You should see: L1 and L2 both reference I1.

    An item can have several historical events.

  3. 3. Link borrowers to loans

    Write Borrower 1 -> many Loans; place borrower_id inside Loan.

    You should see: B1 has L1 and L3.

    One borrower can participate in multiple events.

  4. 4. Explain the event bridge

    Trace B2 -> L2 -> I1 -> T1.

    You should see: Sky borrowed a Camera, and L2 is active.

    Following keys answers a question without copying descriptions.

Now change one thing

An item has 6 historical loans. How many of those Loan rows may reference the same item_id?

Your work

What to finish

A relationship sketch and one key-by-key trace.

Common mistake

Watch for this

Assuming one-to-many over history permits multiple simultaneous active loans without an additional rule.

How can I tell I understand it?

Complete the changed case, explain your result, and pass the three application checks.

Try 3 questions

Quick knowledge check

Answer all 3 questions. Get at least 2 right and the lesson completes automatically.

Not yet passed

You’ll get an explanation for each answer. Signed in? Your results save to your account.

1One department has many employees. Where does department_id usually belong for this link?
2A student can join many clubs and each club has many students. What represents membership cleanly?
3A foreign key loan.item_id=I9 has no matching Item row. What is wrong?
0 of 3 answeredApply the lesson to a short question, then review the explanation.
3
Finish this lesson

Pass the check. We’ll save the progress.

Answer all 3 questions above and get at least 2 right. You can review the explanations and try again.

Go to the knowledge check
Optional course overview video · same video as Lesson 1
freeCodeCamp.orgDatabase Design Course - Learn how to design and plan a database for beginnersYouTube
Optional course overview

Database Design Course - Learn how to design and plan a database for beginners

From freeCodeCamp.org. Watch here or open it on YouTube .

Optional course overview. Follow the written steps below at your own pace.
Tools, templates, and lesson sources

Tools and templates

Tools open in a new tab so you can keep your place here.

Sources and further reading

Explore the references behind this lesson.

BCcampus: Entity Relationship Data Model
Source & access notes · checked 2026-09-12

Opened and inspected on 2026-09-12: Entities, keys and relationship multiplicities.

Access: Free public web page; no paid enrollment required.

Reuse: CC BY 4.0 except credited exceptions; independent tables and explanations.

Report a problem with this lesson

Tell us what went wrong. Please leave out personal information and private project contents.

No sign-in needed.