Сохранять историю изменений таблицы БД через app или триггер?
Конечно же триггер. Реализация на уровне  app плоха тем, что любое другое ваше app, которое возможно появится в будущем, должно будет реализовать эту фичу. Зайдя "руками" в базу и изменив данные о пользователях у вас не останется истории. А вот использование триггеров решает это
ИМХО зависит от того что вам нужно, понадобиться в будущем.
Триггер быстрее и проще.
В приложении можно будет сделать довольно сложную логику.