Role-Playing Dimensions

Concepts covered: dmDimensionTables

When the interviewer gives you a fact table with three date columns (order_date, ship_date, deliver_date), they are testing whether you create three dimension tables or one. The correct answer is one dim_date referenced three times. This is a role-playing dimension, and naming it unprompted shows Kimball-level fluency. The Schema the Interviewer Expects Your role-playing answer: 'Three foreign keys, all pointing to the same dim_date. Each one plays a different role: when ordered, when shipped, when delivered. The physical table is one. The logical usage is three. I do not create three separate date dimensions.' The interviewer is checking whether you understand that one physical dimension can serve multiple analytical roles. How to Narrate the Query in the Interview Demonstrate the query:

About This Interactive Section

This section is part of the Conformed and Role-Playing Dimensions: Advanced lesson on DataDriven, a free data engineering interview prep platform. Each section includes explanations, worked examples, and hands-on code challenges that execute in real time. SQL queries run against a live database. Python runs in a sandboxed Docker container. Data modeling problems validate against interactive schema canvases. All content is framed around what data engineering interviewers actually test at companies like Meta, Google, Amazon, Netflix, Stripe, and Databricks.

How DataDriven Lessons Work

DataDriven combines four interview rounds (SQL, Python, Data Modeling, Pipeline Architecture) with adaptive difficulty and spaced repetition. Easy problems get harder as you improve. Weak concepts resurface until you master them. Your readiness score tracks progress across every topic interviewers test. Every lesson section ends with problems you solve by writing and running real code, not by picking multiple-choice answers.