Pull to refresh

Comments 11

Если уж и идти путем хранимых процедур, json/http гораздо проще сделать на plpython/plperl. Вы смотрели в их сторону?
Честно говоря, нет, так как мне ближе C/C++.
Я не смог в посте найти ответа на главный вопрос — почему логика работы с изображениями находится в БД? У Вас вся бизнес логика в базе? Или Вы пишите некий фреймворк для каких-то целей?
В начале поста я увидел доводы только за внешний сервис работы с изображениями.
На счёт работы с изображениями спора нет, но на счёт бизнес-логики в БД хотел бы уточнить, что в этом плохого?
Ну, если логика специфичная (например, нам надо переворотить миллионы записей из разных таблиц — с точки зрения производительности), имеет смысл переваривать данные ближе к источнику и не выносить в какой-нибудь бекэнд.
А если в БД находится __вся__ логика, то весь проект сильнее рискует превратиться в набор лапши, чем написанная на какой-нибудь Джаве. Нет поддержки IDE в написании кода, мало библиотек (если они вообще есть).
Если короче — много рисков.
Как показывает практика, поддерживать логику на уровне БД гораздо проще, нежели выносить это на клиентскую сторону. Не знаю, может мы о разных вещах говорим, просто я веду биллинг на PGSQL, с моей стороны это видится так.
Имхо, это зависит от логики, её объёма и в особенности от правильности рук того, кто пишет эту логику.
Если от Вашего проекта счастливы разработчики, клиенты, и бизнес получает кучу бабла, то Вы определённо на правильном пути. :)
Ну как бы не жаловались :)
Вообще свалили всё на меня. И БД, и клиента. Благо тянуть это не сложно, и объёмы небольшие, и бизнес-процессы несложные. Зато интересно :)
Вообще, это требуется для только для загрузки изображений в сервис, с учетом того, что имена файлов находятся уже в БД:
UPDATE avatar SET image = bb_upload_file ( 'my.service.local', filename );

Возможно, проще это было сделать скриптом на PHP, так что понимайте это как еще один способ.

У Вас вся бизнес логика в базе?

Можно сказать, что да.
Вопрос «зачем» уже был задан, так что повторяться не буду.

Как ведет себя PostgreSQL при обработке таких запросов?
UPDATE должен же блокировать строку / таблицу при выполнении.
Получается, что если сервис картинок перегружен / лег отдохнуть, то запрос блокирует таблицу на достаточно длительный период?

Да и в обычном режиме, присутствует неопределенная задержка в скрипте, который блокирует таблицу…

P.S. после прочтение статьи теги доставляют отдельное удовольствие :)
Sign up to leave a comment.

Articles