Как в ORM указать зависимые выборки и триггеры?

Доброго времени. Вопрос непростой, будет проще пояснить на примере.

Есть таблица User, у которой есть поля firstname, lastname и fullname (`${firstname} ${lastname}`).

Нужно указать orm при изменении firstname/lastname делать update fullname (это учебный пример, предполагается что средств pl/sql не хватит и нужна серверная логика), а при запросе одного из этих трёх полей всегда одним действием подтягивать все три (для использования транзакций и обхода взаимных блокировок).

Более сложный пример: веб версия файлового менеджера. Нужно при изменении размера файла рекурсивно обновлять суммарный размер папок, в которых они находятся. В этом случае нужно не делать выборку инфы одним действием по всем папкам системы при чтении файла (иначе бд будет работать в однопоточном режиме), но перед изменением размера файла нужно сразу подтягивать нужные папки (в учебных целях забудем про операцию инкремента и будем устанавливать новые значения в режиме транзакции).

Желательно подсказать реализацию на примере TypeORM Node.js PostgreSQL, но я буду рад понять решение на любой удобной вам ORM и ЯП.
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы