Ceci est une question de discussion assez large, alors voici une discussion.
Les tables de dimension
-- Products -----
ProductId
Name
(etc.)
Contient une ligne par produit étant suivi ProductId devrait être une clé de substitution
-- Time --------
TimeId
ReportingPeriod (Q1, week 17, whatever as desired)
(etc.)
contient une ligne pour chaque jour étant suivi. Une fois que les résultats d'une journée d'activités sont connues, il peut être ajouté à l'entrepôt
Notez que TimeID ne doit pas être une clé de substitution
tables de faits
-- Inventory -------------------------
ProductId
TimeId
Une fois que la les résultats des activités d'une journée sont connus, ils peuvent être ajoutés à l'entrepôt Une ligne (par jour) pour chaque produit, répertoriant l'inventaire disponible à la fin de la journée
Mais alors cela devient complexe: quelles sont les données nécessaires et quelles sont les données disponibles? En supposant que les données sont pour un jour, les faits possibles à suivre et enregistrer comprennent:
StartingInventory -- What you had at the start of the day
UnitsReceived -- Units received for storage today
UnitsSold -- Units sold (that cannot be sold again) but not yet shipped
UnitsShipped -- Units shipped (sold or otherwise)
EndingInventory -- Units in stock at end of day
Il devient complexe rapidement. Encore une fois, cela dépend beaucoup de l'information dont vous disposez et des questions qui seront posées à votre entrepôt.
Merci pour votre explication !! Dans notre cas, notre table de faits serait Ventes (total du produit vendu, montant total des ventes - par produit, client, magasin, etc.). D'après ce que je comprends, ils veulent suivre un problème du genre «D'accord, ce produit a été vendu environ 40 fois par jour la semaine dernière et cette semaine, ses ventes ont diminué de 70%.» Est-ce parce qu'il n'y en a plus? Peut-être que la solution pour suivre cette information est à travers une table historique, mais je ne suis pas sûr de savoir comment cela fonctionnerait. –
Une autre chose est qu'il y aura d'autres métriques dans la table de faits, comme le billet moyen, le nombre moyen de produits vendus, le prix maximum payé, le prix minimum payé ... Dans ce cas, comment serait la meilleure chose à mesure que certaines mesures n'aurait pas de sens dans le fait (par ex. ticket moyen par produit: si le fait est détaillé par produit, cette information sera la même que "nombre de produits vendus", n'est-ce pas?) –
. Si c'est un fait auquel le produit individuel ne s'applique pas, faites une table de faits distincte (peut-être table DaySummary, columsn TimeId, TotalSales, MediumTicket, etc.?) –