Имейте в виду, как работают триггеры. Они сработают для каждой строки, которую удалит ваш оператор delete. Это не означает, что вы не должны использовать триггеры, просто имейте это в виду и, самое главное, протестируйте свои сценарии использования и убедитесь, что производительность соответствует требованиям.
Должен ли я использовать правило или триггер?
Из официальных документов:
«Для вещей, которые могут быть реализованы обоими, что лучше всего зависит от использования базы данных. Триггер запускается для любой затронутой строки один раз. Правило манипулирует запросом или генерирует дополнительный запрос. Так что, если много строк затронуто одно утверждение, правило, выдающее одну дополнительную команду, вероятно, будет быстрее, чем триггер, который вызывается для каждой отдельной строки и должен выполнять свои операции много раз, однако концептуально подход триггера намного проще, чем подход правила, и его легче новички, чтобы получить право. "
Подробности см. В документации.
http://www.postgresql.org/docs/8.3/interactive/rules-triggers.html