Справочная информация:
У меня есть веб-сайт (ASP.NET MVC), где пользователи могут писать / редактировать / удалять «рецензии».
Для этого необходимо запустить триггер базы данных, чтобы обновить глобальную статистику в системе.
Таблицы базы данных:
- Отзыв (родительский)
- MetaData1 (обзор 1 - 0..1 MetaData1)
- MetaData2 (обзор 1 - 0..1 MetaData2)
- MetaData3 (обзор 1 - 0 .. * MetaData3)
Итак, Review - это главная таблица (ReviewId - идентификатор), а остальные - метаданные.
Проблема:
У меня есть хранимая процедура, которая выполняет расчеты, которые необходимо вызывать всякий раз, когда рецензия создается / редактируется / удаляется.
На данный момент у меня есть триггер, который вызывает SP на всех таблицах (4 идентичных триггера). Но это приводит к тому, что хранимая процедура выполняется, возможно, 4 раза, когда это нужно сделать только один раз.
Я не могу просто поставить его только на просмотр, потому что, если пользователь редактирует метаданные для обзора, таблица обзора не будет затронута и, следовательно, триггер не сработает.
Мне нужен способ сказать: «Следите за всеми этими таблицами на предмет активности, когда запись создается / редактируется / удаляется, запустите эту процедуру один раз».
Какие-нибудь советы / предложения / идеи?
К вашему сведению - я использую Entity Framework 4 для операций CRUD, если это имеет значение.