ИМО, вариант 5 самый лучший. То, что вы можете хранить изображения в базе данных, не означает, что вы должны это делать. Сохраните местоположение файла и любые метаданные об изображениях в БД. Храните изображения в файловой системе.
«Минусы» хранения изображений в БД в том, что вы в конечном итоге перепрыгиваете через обручи, чтобы фактически использовать изображения в своем приложении. Почти любая библиотека, скрипт, надстройка и т. Д. Могут использовать ваши изображения, если они находятся в каталоге без какой-либо специальной кодировки. Поместите их в БД, и вам нужно написать код для предоставления доступа к их использованию.
Единственное преимущество, которое я вижу, это среда веб-фермы, где несколько веб-серверов используют одну (или реплицированную базу данных), изображения будут доступны для всех веб-серверов автоматически, а данные и изображения могут быть одновременно зарезервированы. .
ИМО, минусы намного перевешивают преимущества использования БД для хранения изображений.