sql это, конечно, хорошо, но логику стоит сразу ваять на процедурах, с минимальным использованием триггеров. потом в отладке, оптимизации и поиске блокировок будет настолько проще, что не придётся переписывать всё это добро
ровно всё то что планируете сделать сейчас, только без триггеров. вместо инсертов и апдейтов по которым планируется писать триггеры, сделайте вызов функций/процедур, которые будут вместо триггеров
но даже без примеров реализации: когда всё построено на процедурах, можно открыть исходник и читать, разбирать, а не заучивать наизусть N срабатывающих триггеров