Products (productId INT PK, bidCount INT)Calcul des offres uniques sur un produit
Enchères (bidID INT PK, productId INT, userId INT, BIT isCounted, créé DATETIME)
Il y a un 1: nombre relation entre un produit et des offres. Chaque cycle d'attente dure 1 jour. J'ai donc besoin de suivre les enchères uniques par jour et de mettre à jour la colonne bidCount. Je définis isCounted = 1 pour chaque ligne que je traite pendant le traitement par lots.
Il s'agit donc d'un total cumulé d'offres uniques pour un produit tout au long de la journée.
J'ai un travail SQL qui s'exécute toutes les 5 minutes pour mettre à jour le BidCount.
étapes que je pense que je dois pour cette requête:
- saisir toutes les lignes qui ont isCounted = 1
- requête # 1 Dressez une liste de productID et uniqueBidCounts où isCounted = 1 requête # 2 construire un liste des productID et uniqueBidCounts où isCounted = 0 requête # 3 construire une liste de productID et uniqueBidCounts avec la différence entre # 1 et # 2
- mise à jour de la table de produits en ajoutant les uniqueBidCounts à la colonne bidCount en utilisant la requête n ° 3
- régler le isCounted = 1 pour t La liste dans la requête n ° 2
Est-ce la bonne approche? Est-ce une approche compliquée ou peut-elle être simplifiée?
Updated J'ai ajouté le champ DateHeure créé, donc je vais devoir filtrer le jour en cours et supprimez toutes les offres plus anciennes dans un autre travail de traitement par lots tous les jours (ou dans le même processus)
Comment pouvez-vous savoir si une offre est dans un cycle d'enchères? Voulez-vous dire que chaque productId est unique au cycle d'enchères d'un jour? – Tim
tim, j'ai ajouté le timbre datetime dans la table des offres merci. – mrblah