Созрел интересный вопрос, у нас есть база пользователей, у каждого из них есть возможность создавать свою галерею, или даже несколько.
Как наиболее оптимально, со стороны скорости и надежности, создать структуру хранения данных. Думаю между двумя вариантами - полностью всю нагрузку дать на БД, или больше на файловую систему.
В первом случае: Все фото хранятся в общей директории, ссылки на картинки помещаем в БД.
Во втором: каждому пользователю создаем свою директорию в которую загружаются картинки и при извлечении фото просто сканируем ее и выводим все у чего есть подходящее разрешение. Параллельно есть БД с названием файлов - для удаления.
Все зависит от того что вам сейчас необходимо и какие перспективы на будущее возможны. Организация директорий в виде пользователь/ID_альбома/файлы привязывает галерею к пользователю. В таком случае необходимо понять есть ли необходимость привязывать галерею к пользователю.
Например галереи могут опубликовывать как публичные. Кроме того что произойдет когда пользователя удалят? Должна ли сохраняться галерея?
Например возможно такая ситуация. Какой нибудь пользователь может сохранить публичную галерею у себя в избранном. Что должно произойти если автор галереи удалит свой аккаунт? Должна ли галерея удаляться из избранной подписчика? Если нет то привязка аккаунт - галерея не верная.
Для большой гибкости можно применить такое решение.
В файловой системе галерея будет выглядеть так albums/ album_ID/images.
База данных может быть организованна вот так
отдельная таблица albums в которой будет весь список альбомов.
И еще одна таблица user_albums в которой будет пара ключей
user_ID,album_ID.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники