Хранение двоичных файлов в базе данных: я пропускаю некоторые недостатки в этой конкретной ситуации? - PullRequest
2 голосов
/ 30 августа 2011

Я знаю, что эта тема широко обсуждалась в прошлом, и я тщательно проанализировал многие проницательные ответы по этому вопросу, подтверждая мою идею о том, что обычно , хранение BLOB-объектов в БД - плохая практика.

Теперь давайте рассмотрим следующие сценарии:

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

Кажется, все заставляет меня думать, что решение БД является оптимальным.

Есть ли недостатки, которые я не вижу (кроме очевидного открытого соединения с БД в случае отсутствия кэша)?

1 Ответ

0 голосов
/ 30 августа 2011

Одной из проблем в этом сценарии является создание резервных копий или синхронизация среды «разработки» или «тестирования» с рабочей средой (перемещение по базе данных db было бы болезненным). Также намного проще редактировать массово все изображения, если они находятся в режиме fs (скажем, массовое создание нового размера для изображений).

Во всяком случае, я не полностью осознаю реальные преимущества этого подхода по сравнению с "указателями в db, файлами на fs". Кеш памяти, возможно? В наши дни, когда я думаю о каплях, я все равно думаю о S3:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...