J'essaie de concevoir une modélisation dimensionnelle pour l'entreposage de données pour un de mes projets (commande client). Je suis nouveau à ce concept.Comment stocker des données dans une table de faits avec plusieurs produits dans un ordre dans l'entrepôt de données
Jusqu'à présent, je pourrais comprendre que le produit, le client et la date peuvent être stockées dans la table de dimension et les informations de commande sera dans la table de faits.
structure de la table de Date_dimension sera
date_dim_id, date, week_number, month_number
structure de la table de Product_dimension sera
product_dim_id, product_name, desc, sku
structure de la table Order_fact seront
order_id, product_dim_id(fk), date_dim_id(fk), order_quantity, order_total_price, etc
Si une commande est place avec 2 ou plus le nombre du produit, y aura-t-il des entrées répétées dans la table order_fact pour la même order_id, date_dim_id
Aidez s'il vous plaît. Je suis confus ici. Je sais que dans une base de données relationnelle, order table
aura une entrée par ordre et la relation entre le produit et l'ordre sera maintenue dans une table différente ayant le order_id et le product_id comme clé étrangère.
Merci d'avance.
Quelles informations souhaitez-vous enregistrer dans la table des en-têtes de commande? Vous créez un fait au niveau du niveau de la commande, puis vous calculez comment enregistrer les informations d'en-tête de commande. Par exemple, le client apparaît uniquement dans l'en-tête de votre système source, mais dans votre table des commandes, il sera répété pour toutes les commandes de produits individuelles. Il n'y a pas de problème avec ça. Le seul défi est de dire quand vous avez un montant total d'achat sur l'en-tête - vous ne pouvez pas répéter cela sur plusieurs enregistrements de produits. –
Il existe deux solutions principales pour cela: 1. diviser l'envoi par le nombre d'enregistrements et le répartir sur tous les enregistrements; 2. Ajouter un autre enregistrement et prétendre que la livraison est un produit. Quoi que vous fassiez, vous devez conserver le numéro de commande d'origine dans le fait afin que vous puissiez mesurer des choses comme «vente moyenne par commande» et «moyenne des produits par commande». Quoi qu'il en soit, cette modélisation dimensionnelle en-tête/détail est discutée ad nauseum sur internet. Pourquoi ne faites-vous pas de recherche et ne posez pas de question précise? –
vous devriez probablement utiliser Order Line Item comme le grain de votre table de faits –