Я был бы прагматичен в этом и следовал бы принципу «пока не оптимизировать». Сделайте решение, которое имеет смысл на данный момент, и такое, которое у вас есть ресурсы для разработки, чтобы правильно реализовать. Есть много потенциальных проблем . Но они не обязательно становятся реальными проблемами. Например, это не будет проблемой, если у вас есть 100 пользователей. Это может быть проблемой, если у вас есть 100 000 или 10 000 000 пользователей. Но в последнем случае должна быть основа для увеличения ресурсов на разработку для решения всех вопросов.
Но хранение данных в базе данных освобождает вас от решения других проблем, например, где следует хранить файлы, как их резервировать и т. Д. Поскольку вы пишете веб-приложение, это будет очень хорошая идея по соображениям безопасности. чтобы убедиться, что процесс, в котором размещено приложение, не имеет доступа на запись в файловую систему, вам необходимо настроить сервер таким образом, чтобы процесс имел доступ на чтение / запись к папке, в которой хранятся данные.
Я бы лично решил хранить данные в базе данных, но следите за тем, чтобы BLOBS не читались до тех пор, пока они действительно не потребуются, т.е. не выполнялось «SELECT * FROM ...» в тех таблицах, содержащих блоги. И я бы позаботился о том, чтобы дизайн облегчал перемещение данных из базы данных в файловую систему, если у вас возникают проблемы с производительностью. Например, храните информацию о файле в отдельной таблице файлов , таким образом сохраняя информацию о файле отдельно от других бизнес-объектов.
Предполагая, что у вас есть класс File для представления файла, считываемого в базе данных, влияние последующего перемещения на код будет минимальным.