J'ai une table qui suit les données d'inventaire par chaque pièce individuelle. Ceci est une version simplifiée de la table (certains champs non-clés sont exclus):Est-ce une bonne conception pour une table d'audit avec des tonnes d'enregistrements?
UniqueID,
ProductSKU,
SerialNumber,
OnHandStatus,
Cost,
DateTimeStamp
Chaque fois que quelque chose arrive à un morceau donné, un nouveau record d'audit est créé. Par exemple, la première fois que mon produit ABC est ajouté à l'inventaire je reçois un dossier comme celui-ci:
1, ABC, 555, OnHand, $500, 01/01/2009 @ 02:05:22
Si le coût de ABC le numéro de série 555 changements, je reçois un nouveau record:
2, ABC, 555, OnHand, $600, 01/02/2009 @ 04:25:11
Si la pièce est vendue, je reçois un nouveau record:
3, ABC, 555, Sold, $600, 02/01/2009 @ 5:55:55
Si une nouvelle pièce d'ABC est apporté, je reçois ce disque:
4, ABC, 888, OnHand, $600, 02/05/2009 @ 9:01:01
Je dois être en mesure d'obtenir la valeur d'inventaire en main pour un ensemble donné de produits à tout moment aussi vite que possible. En utilisant mon exemple ci-dessus, si je voulais obtenir ma valeur d'inventaire pour le produit ABC à partir du 01/02/2009, je devrais sélectionner, pour chaque combinaison unique Produit/Numéro de série, le plus récent enregistrementavant au 01/03/2009 avec le statut "OnHand" et ensuite additionner les coûts. (Je ne suis pas sûr à 100% de ce à quoi ressemblerait cette déclaration select à ce stade, mais je vais expérimenter un peu).
Mes questions: est-ce une bonne structure pour le type de tableau d'audit que je décris? Autrement dit, se prête-t-il à des requêtes rapides si elles sont indexées de manière appropriée? (J'essaie d'imaginer ce qui se passera lorsque cette table atteindra des millions de lignes.)
Dois-je décomposer les enregistrements historiques en une table distincte et ne laisser que l'enregistrement le plus récent pour chaque combinaison ProductID/SerialNumber dans le " table active?
Tous les commentaires/suggestions/commentaires/liens sont appréciés.
Merci!
Toutes les pièces partageant le même SKU n'auront pas nécessairement le même coût ou le même prix. Une pièce d'ABC achetée en 2002 était probablement moins chère qu'une cartouche ABC achetée cette année. La même chose vaut pour le prix de vente. –