Skip to content
Back to challenges
Dimensional Modeling FoundationsConcept Challengeintermediate20 min

Campaign enrollment bridge

Resolve a subscriber-to-campaign many-to-many relationship without losing enrollment detail.

How this preview works
Preview this problem before signing in. Sign in to save progress and submit work.

Concept

many-to-many-modeling

The primary modeling idea this problem reinforces.

Requirements

3

Business needs the model must satisfy.

Read the concept guide: Bridge tables
Scenario

A growth team runs campaigns that many subscribers can join. Each subscriber can join many campaigns, and analysts need to study enrollment timing and status without duplicating subscriber or campaign attributes.

Why this matters

Many-to-many relationships are a classic interview trap. A direct edge looks simple, but it hides the row grain and leaves nowhere clean to store relationship-specific facts like enrollment date or status.

Requirements
  • Keep subscribers and campaigns as reusable dimensions.
  • Add a campaign enrollment bridge between them.
  • Declare explicit bridge foreign keys to both dimension surrogate keys.
Read-only starter workspace
Inspect the authored starting ERD, then open the workspace to edit and run the checks. Saving your progress needs a free account.

Template

Campaign enrollment starter workspace

The model users start from in the full workspace.

Entities

2

Seeded tables visible in the public preview.

Dialect

postgresql

Generated SQL target for this starter model.

Mini Map

This preview is read-only. Open the workspace to edit and verify; saving needs a free account.

Open workspace

Try the question first.

The discussion has other people's approaches and solutions. Give it a real attempt before you read them.