Я знаю, что эта тема широко обсуждалась в прошлом, и я тщательно проанализировал многие проницательные ответы по этому вопросу, подтверждая мою идею о том, что обычно , хранение BLOB-объектов в БД - плохая практика.
Теперь давайте рассмотрим следующие сценарии:
- Есть
users
, который имеет отношение один ко многим с images
; images
строки будут содержать, кроме users
'FK и некоторых метаданных (дата, заголовок ...), следующие двоичные файлы (или пути к файлам, указывающие на следующие двоичные файлы): - Миниатюра (смешно)маленький бинарный файл);
- Полноразмерный (на самом деле будет предварительно обработан, размером около 400x600 и около 35-45 КБ;
- Мне никогда не понадобятся данные из
images
таблица без изображения (и в любом случае, я знаю, где не использовать SELECT *
); - Я хочу использовать fs и кэш-память;
- В наиболее распространенном сценарии я 'понадобятся большие пальцы (только динамическое получение полноразмерных изображенийнекоторые события и, в этих случаях, получение их по удостоверению личности).Уточнение: либо много очень очень маленьких картинок, либо еще одно очень маленькое на звонок;
- Пользователи захотят изменить данные своих картинок, удалить их, изменить их много .
Кажется, все заставляет меня думать, что решение БД является оптимальным.
Есть ли недостатки, которые я не вижу (кроме очевидного открытого соединения с БД в случае отсутствия кэша)?