Найти новые записи в таблице базы данных - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть Statistic таблица с этими полями Id UserId DateStamp Data Также в базе данных есть таблица User с полем CreditsLeft (int).Мне нужно создать функцию (назовем ее FindNewRecordsAndUpdate), которая будет читать таблицу Statistic каждые 10 минут из моего приложения и уменьшать поле CreditLeft на количество новых записей Statistic, найденных для указанного пользователя.Моя главная проблема заключается в том, чтобы при следующем запуске функции FindNewRecordsAndUpdate найти новые записи в поле Statistic и пропустить уже подсчитанные?Я мог бы добавить поле Counted (bool) в Statistic и установить True для уже «используемых» записей, но, может быть, есть лучшее решение с добавлением нового поля?

1 Ответ

0 голосов
/ 14 декабря 2011

Как минимум 3 других варианта:

  1. Используйте триггер .Поэтому, когда строки вставляются в таблицу статистики, сальдо пользователя автоматически обновляется

  2. Просто выполните агрегат по требованию над таблицей статистики, чтобы получить SUM (Данные)

  3. Используйте индексированное представление для «предварительного вычисления» суммы в точке 2

Лично яd перейти к точке 2 (и точке 3 в зависимости от частоты запросов), чтобы избежать денормализованных данных в таблице User.

...