Продукты (productId INT PK, bidCount INT)
Ставки (bidID INT PK, productId INT, userId INT, isCounts BIT, создано DATETIME)
Между продуктом и ставками существует отношение 1: много.
Каждый цикл ставок длится 1 день, поэтому мне нужно отслеживать уникальные ставки в день и обновлять столбец bidCount. Я устанавливаю isCounts = 1 для каждой строки, которую я обрабатываю в процессе пакетной обработки.
Так что это общее количество уникальных ставок для продукта в течение дня.
У меня есть задание sql, которое запускается каждые 5 минут для обновления bidCount.
Шаги, которые мне нужны для этого запроса:
- захватить все строки, которые имеют isCounts = 1
- запрос № 1 создает список productID и uniqueBidCounts, где isCounts = 1 запрос № 2 создает список productID и uniqueBidCounts, где isCounts = 0 запрос № 3 создает список productID и uniqueBidCounts с разницей между № 1 и № 2
- обновить таблицу продуктов, добавив uniqueBidCounts в столбец bidCount с помощью запроса # 3
- установить isCounting = 1 для списка в запросе # 2
Это правильный подход? это сложный подход или его можно упростить?
Обновлено
Я добавил созданное поле DATETIMe, поэтому мне придется фильтровать текущий день и удалять любые более старые заявки в другом пакетном задании, которое выполняется ежедневно (или в том же процессе)