(Postgres 8.3)
Я работаю с таблицей БД X шириной более 100 столбцов (что, к сожалению, не могу изменить), многие из которых обновляются постоянно и очень часто в соответствии с обычным бизнес-процессом.
У меня есть требование обновить таблицу Y на основе обновлений определенного столбца foo в X , обновленных в результате необычного бизнес-процесса. Однако из-за очень большого количества обновлений против X простое применение триггера, который проверяет X.foo , чтобы решить, обновлять ли Y , считается неприемлемым.
Таблица Y тоже не конец линии, есть цепочка предков, несколько глубоких, и все они должны пузыриться до корня.
Единственные решения, о которых я могу думать:
- разбиение X на несколько таблиц (не разрешено)
- явно вносит обновления в Y (и Z и другие) как часть бизнес-логики для обновления X , но это будет иметь большое значение занимают много места и оставляют много места для того, чтобы кто-то ошибся или пропустил это, когда им нужно реализовать то же самое в другом процессе. И это явно не очень хороший дизайн (который я пытаюсь постепенно исправить, где могу).
Кто-нибудь знает способ ограничения выполнения триггера по столбцу или любой другой альтернативе? Триггеры на просмотры? Другое вуду?