La solicitud

De Heather Lewis, Jefa de Datos
Tu objetivo
Paso 1 de 3. Relaciona las líneas de pedido. Conecta order_items con orders y order_items con products, varios a uno, dirección única, activa.
- Todas las relaciones que el informe necesita, bien configuradaspendiente
Paso 2 de 3. Conserva tus dos relaciones y añade las que cuelgan de orders: orders con customers por el cliente, orders con 'Date' por la fecha del pedido (varios a uno, única, activa). Luego marca 'Date' como la tabla de fechas.
- Todas las relaciones que el informe necesita, bien configuradaspendiente
- La tabla de fechas marcadapendiente
Paso 3 de 3. Marketing quiere los registros por mes desde el mismo calendario. Añade customers[signup_date] a 'Date'[Date], varios a uno, dirección única, sin cambiar ninguna ruta que usen las medidas de ventas.
- Todas las relaciones que el informe necesita, bien configuradaspendiente
- La tabla de fechas marcadapendiente
Paso 1 · tu modelo
Las tablas del modelo: order_items (order_item_id, order_id, product_id, quantity, unit_price, discount_pct, line_total), orders (order_id, customer_id, order_date, status, channel, shipping_fee, coupon_code), products (product_id, name, category, subcategory, unit_price, unit_cost, launched_on, is_active), customers (customer_id, first_name, last_name, email, city, state, signup_date, segment, referral_source), Date (Date, Year, Quarter, Month Number, Month, Year Month, Year Quarter, Day, Weekday Number, Weekday).
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Paso 2 · tu modelo
Las tablas del modelo: order_items (order_item_id, order_id, product_id, quantity, unit_price, discount_pct, line_total), orders (order_id, customer_id, order_date, status, channel, shipping_fee, coupon_code), products (product_id, name, category, subcategory, unit_price, unit_cost, launched_on, is_active), customers (customer_id, first_name, last_name, email, city, state, signup_date, segment, referral_source), Date (Date, Year, Quarter, Month Number, Month, Year Month, Year Quarter, Day, Weekday Number, Weekday).
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Paso 3 · tu modelo
Las tablas del modelo: order_items (order_item_id, order_id, product_id, quantity, unit_price, discount_pct, line_total), orders (order_id, customer_id, order_date, status, channel, shipping_fee, coupon_code), products (product_id, name, category, subcategory, unit_price, unit_cost, launched_on, is_active), customers (customer_id, first_name, last_name, email, city, state, signup_date, segment, referral_source), Date (Date, Year, Quarter, Month Number, Month, Year Month, Year Quarter, Day, Weekday Number, Weekday).
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Lo que recibe Heather, y por qué
La lección
Este es el modelo que usan todos los capítulos posteriores. Lo construyes desde cero: cinco tablas, cinco relaciones, una marca de tabla de fechas.
En qué estás trabajando
Un diagrama de práctica creado para este sitio, porque Power BI Desktop solo funciona en Windows. Cada paso se suma al anterior, y el diagrama comprueba los datos como lo hace Power BI antes de comparar tu modelo con el objetivo. En Power BI Desktop el mismo trabajo ocurre en la vista Modelo, con Modeling → Manage relationships para lo que quieras fijar con precisión, y Table tools → Mark as date table para el calendario.
Empieza por la granularidad de cada tabla
| Tabla | Una fila es un… | Clave | Apunta a |
|---|---|---|---|
| order_items | línea de pedido | order_item_id | order_id, product_id |
| orders | pedido | order_id | customer_id, order_date |
| products | producto | product_id | |
| customers | cliente | customer_id | signup_date |
| Date | día | Date |
Cada flecha de la última columna se convierte en una relación desde esa columna hacia la clave que nombra. Lee la tabla una vez y tienes todo el modelo delante.
El orden de trabajo
- Primero los hechos.
order_itemsapunta aorders(su cabecera) y aproducts. Estas dos relaciones hacen de la tabla de líneas el centro de la estrella. - Lo que cuelga del pedido. Los clientes y las fechas pertenecen al pedido, no a la línea: un
pedido tiene un cliente y una fecha, sea cual sea su contenido. Así que
ordersse relaciona concustomersy con'Date', y se marca el calendario. - Roles adicionales. La fecha de registro es una segunda fecha en
customers. Como'Date'ya llega acustomersa través deorders, la nueva relación debe ser inactiva.
Revísalo como un revisor
Una vez construido, elige cualquier dimensión y traza un filtro hasta order_items:
- una categoría: products → order_items (un salto);
- un estado: customers → orders → order_items (dos saltos);
- un mes: Date → orders → order_items (dos saltos).
Cada ruta es única y va de un lado «uno» a un lado «varios». Eso es lo que lo hace una estrella:
cualquier medida sobre order_items responde a cada segmentación sin una sola línea de DAX
especial.
Errores comunes
- Products relacionada con orders. Los pedidos no tienen producto; las líneas sí.
- Date relacionada con las líneas de pedido. Las líneas no tienen fecha. La fecha del pedido
vive en
orders. - Ambas direcciones para «hacer que las segmentaciones se hablen». Crea rutas ambiguas exactamente en este tipo de modelo. Mantén Single.
- Una segunda relación de fecha activa. Solo una ruta activa; las demás esperan a USERELATIONSHIP.
¡Linterna encendida!
Practicaste: star schemarelationshipdate tablemark as date tableinactive relationshipdata model
- Resuelto
- Sin pistas
- Al primer intento
