Modelado Promotions en BBDD Ecommerce
Buenas,
Estoy empezando a modelar una bbdd de Ecommerce en el que la tabla Fact Sales crea registros por cada pedido a nivel de producto, es decir, un pedido con 2 'Product id' diferentes crea dos registros.
Hasta aquí bien.
El problema viene con los cupones o promociones de los pedidos. El objetivo es el análisis de estas promociones a nivel de 'order id' (no de 'product id'). El problema es que estos campos los recoge la tabla a través de una concatenación, ya que un mismo 'order id' puede solapar más de una promoción:
La duda es:
Ante esto, qué opción de modelado sería la correcta:
Hasta aquí bien.
El problema viene con los cupones o promociones de los pedidos. El objetivo es el análisis de estas promociones a nivel de 'order id' (no de 'product id'). El problema es que estos campos los recoge la tabla a través de una concatenación, ya que un mismo 'order id' puede solapar más de una promoción:
La duda es:
Ante esto, qué opción de modelado sería la correcta:
- Tratar las promociones como una dimensión: en este caso como se dividiría las columnas en la tabla 'Fact_Sales', ya que habría que desconcatenar dos columnas y crear registros que compatibilicen con lo anteriormente citado.
- ¿Habría que tratar las promociones como otra Fact Table unidas a nivel de 'order id'? Con está opción también me surge la duda de como desconcatenar las dos columnas relacionadas?
Power Query
Respuestas
Estudiante
•respondió hace 2 años
Estudiante
•respondió hace 2 años
Estudiante
•respondió hace 2 años
Estudiante
•respondió hace 2 años
Estudiante
•respondió hace 2 años
2. Sí a manejar otra tabla pero NO a nivel promoción por [order id] porque te va a generar otros problemas al momento de analizar los datos en el dashboard. Aquí yo te recomiendo que crees la tabla de esta manera:
¿Es correcto?
Por otro lado, en la desconcatenación de las promociones de los pedidos ya apliqué antes de mi duda los pasos que me indicas, pero el problema que planteaba es que hay dos divisiones relacionadas, por lo que al dividir una de las columnas no se soluciona. Voy a poner otra captura para que veas a lo que me refiero:
El objetivo es que cada registro contenga su nombre de promoción ('Voucher name') con el importe de descuento correspondiente de la columna de 'Total voucher with tax')
¿Se entiende mejor así? No se me ocurre como realizarlo.
Mil gracias por adelantado.
Abrazo.
Primero separa las 2 columnas usando el delimitador de la coma, y separando en columnas.
Luego combina el nombre del voucher en la primera columna de los nombres, con el monto en la primera columna de los montos. En este caso las uní con una columna personalizada y usando dos puntos.
En este caso fueron máximo 2 promociones, pero tú vas a tener que hacer esto el número de veces necesario para el número de vouchers que se pueden usar en tu caso.
Quitas las columnas que ya no necesitas. En este caso, las que use con los datos que uní en otras columnas.
Seleccionas tus tablas con TODAS las otras columnas. Las que no necesitaste para la transformación. Aplicas la anulación de dinamización de otras columnas (en los cursos vemos varias veces esto).
Y te va a mover las columnas a 2 columnas. Una de atributos y una de valores.
Quitas la columna de Atributo (solo tiene el nombre de las columnas, que en este caso no es relevante).
Y la columna de valor la separas de nuevo por delimitador, igual en columnas
Ahora tendrás la columna con su voucher, su valor y hacia abajo para poder analizar los datos
Saludos!
- Diego